Hi, I am facing an issue I really did not expect, where a plugins <configuration> parameters in the POM take precedence over CLI –Dparam=value parameter values.
My plugin takes a string parameter: @Mojo(name = "showValue", requiresProject = true, aggregator = true, defaultPhase = LifecyclePhase.PACKAGE, threadSafe = true) public class DemoMojo extends AbstractMojo { /** * The name of the property to print */ @Parameter(property=“demoName”) private String demoName; public void execute() throws MojoExecutionException, MojoFailureException { if (StringUtils.isEmpty(demoName)) { getLog().info("demo-plugin: demoName variable was not given."); } else { getLog().info("demo-plugin: " + demoName); } } } So far this works as I expect: <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <modelVersion>4.0.0</modelVersion> <groupId>com.danijoh2.project</groupId> <artifactId>sample</artifactId> <version>1.0.0-SNAPSHOT</version> <build> <plugins> <plugin> <groupId>com.danijoh2</groupId> <artifactId>demo-plugin</artifactId> <version>1.0.0-SNAPSHOT</version> <executions> <execution> <id>demo</id> <goals> <goal>showValue</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </project> DANIJOH2-M-V0MA:Desktop danijoh2$ mvn clean install [INFO] ------------------------------------------------------------------------ [INFO] Building sample 1.0.0-SNAPSHOT ... [INFO] --- demo-plugin:1.0.0-SNAPSHOT:showValue (default-cli) @ sample --- [INFO] demo-plugin: demoName variable was not given. And if I pass the parameter I see it is accepted: DANIJOH2-M-V0MA:Desktop danijoh2$ mvn clean install –DdemoName=cliParam [INFO] ------------------------------------------------------------------------ [INFO] Building sample 1.0.0-SNAPSHOT ... [INFO] --- demo-plugin:1.0.0-SNAPSHOT:showValue (default-cli) @ sample --- [INFO] demo-plugin: cliParam However, if I specify the parameter in the POM, I no longer see the CLI value being used: <plugin> <groupId>com.danijoh2</groupId> <artifactId>demo-plugin</artifactId> <version>1.0.0-SNAPSHOT</version> <configuration> <demoName>pomParam</demoName> </configuration> … </plugin> DANIJOH2-M-V0MA:Desktop danijoh2$ mvn clean install –DdemoName=cliParam [INFO] ------------------------------------------------------------------------ [INFO] Building sample 1.0.0-SNAPSHOT ... [INFO] --- demo-plugin:1.0.0-SNAPSHOT:showValue (default-cli) @ sample --- [INFO] demo-plugin: pomParam Shouldn’t the CLI parameter value override any value in the POM? Thanks, Daniel