diff --git a/src/it/MCOMPILER-298/invoker.properties b/src/it/MCOMPILER-298/invoker.properties index e08297d68..cf90967bf 100644 --- a/src/it/MCOMPILER-298/invoker.properties +++ b/src/it/MCOMPILER-298/invoker.properties @@ -16,3 +16,4 @@ # under the License. invoker.goals = test +invoker.goals.2 = clean test -Dmaven.compiler.parameters=false -DexpectedParameterNamePresent=false diff --git a/src/it/MCOMPILER-298/pom.xml b/src/it/MCOMPILER-298/pom.xml index 319e55074..d25cf68ad 100644 --- a/src/it/MCOMPILER-298/pom.xml +++ b/src/it/MCOMPILER-298/pom.xml @@ -45,9 +45,6 @@ org.apache.maven.plugins maven-compiler-plugin @project.version@ - - true - diff --git a/src/it/MCOMPILER-298/src/test/java/com/foo/ParameterTest.java b/src/it/MCOMPILER-298/src/test/java/com/foo/ParameterTest.java index 42d771dfe..4b88aeac7 100644 --- a/src/it/MCOMPILER-298/src/test/java/com/foo/ParameterTest.java +++ b/src/it/MCOMPILER-298/src/test/java/com/foo/ParameterTest.java @@ -26,11 +26,11 @@ public class ParameterTest { @Test public void testParameter() throws Exception { - assertEquals( - "parameterName", - ParameterClass.class - .getMethod("method", String.class) - .getParameters()[0] - .getName()); + var parameter = ParameterClass.class.getMethod("method", String.class).getParameters()[0]; + boolean expectedNamePresent = Boolean.parseBoolean(System.getProperty("expectedParameterNamePresent", "true")); + assertEquals(expectedNamePresent, parameter.isNamePresent()); + if (expectedNamePresent) { + assertEquals("parameterName", parameter.getName()); + } } } 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 cac92f902..fa0d162d9 100644 --- a/src/main/java/org/apache/maven/plugin/compiler/AbstractCompilerMojo.java +++ b/src/main/java/org/apache/maven/plugin/compiler/AbstractCompilerMojo.java @@ -447,12 +447,13 @@ final Charset charset() { /** * Whether to generate metadata for reflection on method parameters. * If {@code true}, the {@code -parameters} option will be added to compiler arguments. + * This is enabled by default. Set this parameter to {@code false} to omit the metadata. * * @see javac -parameters * @since 3.6.2 */ - @Parameter(property = "maven.compiler.parameters", defaultValue = "false") - protected boolean parameters; + @Parameter(property = "maven.compiler.parameters", defaultValue = "true") + protected boolean parameters = true; /** * Whether to include debugging information in the compiled class files.