Set Java source and target when compiling AOT generated sources

When compiling AOT-generated sources in the Maven plugin `process-aot`
and `process-test-aot` goals, the Java compiler should be provided
with the same `--source`, `--target`, and `--release` configuration
values as the Maven compiler plugin uses to compile main sources.

Fixes gh-33112
This commit is contained in:
Scott Frederick
2022-11-11 15:09:00 -06:00
parent 11652bd8e6
commit c28c614c47
3 changed files with 26 additions and 1 deletions

View File

@@ -59,19 +59,22 @@ class JavaCompilerPluginConfigurationTests {
JavaCompilerPluginConfiguration configuration = new JavaCompilerPluginConfiguration(this.project);
assertThat(configuration.getSourceMajorVersion()).isNull();
assertThat(configuration.getTargetMajorVersion()).isNull();
assertThat(configuration.getReleaseVersion()).isNull();
}
@Test
void versionsAreReturnedFromConfiguration() throws IOException, XmlPullParserException {
Xpp3Dom dom = buildConfigurationDom("<source>1.9</source>", "<target>11</target>");
Xpp3Dom dom = buildConfigurationDom("<source>1.9</source>", "<target>11</target>", "<release>12</release>");
given(this.plugin.getConfiguration()).willReturn(dom);
Properties properties = new Properties();
properties.setProperty("maven.compiler.source", "1.8");
properties.setProperty("maven.compiler.target", "10");
properties.setProperty("maven.compiler.release", "11");
given(this.project.getProperties()).willReturn(properties);
JavaCompilerPluginConfiguration configuration = new JavaCompilerPluginConfiguration(this.project);
assertThat(configuration.getSourceMajorVersion()).isEqualTo("9");
assertThat(configuration.getTargetMajorVersion()).isEqualTo("11");
assertThat(configuration.getReleaseVersion()).isEqualTo("12");
}
@Test
@@ -80,10 +83,12 @@ class JavaCompilerPluginConfigurationTests {
Properties properties = new Properties();
properties.setProperty("maven.compiler.source", "1.8");
properties.setProperty("maven.compiler.target", "11");
properties.setProperty("maven.compiler.release", "12");
given(this.project.getProperties()).willReturn(properties);
JavaCompilerPluginConfiguration configuration = new JavaCompilerPluginConfiguration(this.project);
assertThat(configuration.getSourceMajorVersion()).isEqualTo("8");
assertThat(configuration.getTargetMajorVersion()).isEqualTo("11");
assertThat(configuration.getReleaseVersion()).isEqualTo("12");
}
private Xpp3Dom buildConfigurationDom(String... properties) throws IOException, XmlPullParserException {