diff --git a/pom.xml b/pom.xml index e093008b7..54ea68171 100644 --- a/pom.xml +++ b/pom.xml @@ -68,7 +68,7 @@ under the License. ! The following property is used in the integration tests MCOMPILER-157 --> 3.5 - 2.11.1 + 2.11.2-SNAPSHOT 2.4.21 3.7.0 diff --git a/src/main/java/org/apache/maven/plugin/compiler/AbstractCompilerMojo.java b/src/main/java/org/apache/maven/plugin/compiler/AbstractCompilerMojo.java index 2f083965b..a97b36d28 100644 --- a/src/main/java/org/apache/maven/plugin/compiler/AbstractCompilerMojo.java +++ b/src/main/java/org/apache/maven/plugin/compiler/AbstractCompilerMojo.java @@ -402,6 +402,14 @@ public abstract class AbstractCompilerMojo @Parameter( property = "maven.compiler.debuglevel" ) private String debuglevel; + /** + * Keyword to be appended to the -implicit: command-line switch. + * + * @since 3.10.2 + */ + @Parameter( property = "maven.compiler.implicit" ) + private String implicit; + /** * */ @@ -686,6 +694,8 @@ public void execute() compilerConfiguration.setDebugFileName( getDebugFileName() ); + compilerConfiguration.setImplicitOption( implicit ); + if ( debug && StringUtils.isNotEmpty( debuglevel ) ) { String[] split = StringUtils.split( debuglevel, "," ); @@ -1910,4 +1920,9 @@ public void setRelease( String release ) this.release = release; targetOrReleaseSet = true; } + + final String getImplicit() + { + return implicit; + } } diff --git a/src/test/java/org/apache/maven/plugin/compiler/CompilerMojoTestCase.java b/src/test/java/org/apache/maven/plugin/compiler/CompilerMojoTestCase.java index 79d87113d..bc78398ad 100644 --- a/src/test/java/org/apache/maven/plugin/compiler/CompilerMojoTestCase.java +++ b/src/test/java/org/apache/maven/plugin/compiler/CompilerMojoTestCase.java @@ -267,6 +267,22 @@ public void testCompilerArgs() assertEquals( Arrays.asList( "key1=value1","-Xlint","-my&special:param-with+chars/not>allowed_in_XML_element_names" ), compileMojo.compilerArgs ); } + public void testImplicitFlagNone() + throws Exception + { + CompilerMojo compileMojo = getCompilerMojo( "target/test-classes/unit/compiler-implicit-test/plugin-config-none.xml" ); + + assertEquals( "none", compileMojo.getImplicit() ); + } + + public void testImplicitFlagNotSet() + throws Exception + { + CompilerMojo compileMojo = getCompilerMojo( "target/test-classes/unit/compiler-implicit-test/plugin-config-not-set.xml" ); + + assertNull( compileMojo.getImplicit() ); + } + public void testOneOutputFileForAllInput2() throws Exception { diff --git a/src/test/resources/unit/compiler-implicit-test/plugin-config-none.xml b/src/test/resources/unit/compiler-implicit-test/plugin-config-none.xml new file mode 100644 index 000000000..faf333410 --- /dev/null +++ b/src/test/resources/unit/compiler-implicit-test/plugin-config-none.xml @@ -0,0 +1,38 @@ + + + + + + + maven-compiler-plugin + + + ${basedir}/target/test-classes/unit/compiler-implicit-test/src/main/java + + javac + true + ${basedir}/target/test/unit/compiler-implicit-test/target/classes + ${basedir}/target/test/unit/compiler-implicit-test/target + none + + + + + diff --git a/src/test/resources/unit/compiler-implicit-test/plugin-config-not-set.xml b/src/test/resources/unit/compiler-implicit-test/plugin-config-not-set.xml new file mode 100644 index 000000000..1ad147b68 --- /dev/null +++ b/src/test/resources/unit/compiler-implicit-test/plugin-config-not-set.xml @@ -0,0 +1,37 @@ + + + + + + + maven-compiler-plugin + + + ${basedir}/target/test-classes/unit/compiler-implicit-test/src/main/java + + javac + true + ${basedir}/target/test/unit/compiler-implicit-test/target/classes + ${basedir}/target/test/unit/compiler-implicit-test/target + + + + +