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.