Это должно быть просто - я думаю, что просто что-то упускаю. У меня есть простой Mojo:
package com.company.product.plugins;
import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
/**
* @goal diff
*/
public class CCDiffMojo extends AbstractMojo {
/**
* @parameter expression="${ccdiff.run}" default-value="true"
*/
private boolean run;
public void execute() throws MojoExecutionException {
if (run) {
getLog().info("Executing...");
// TODO: Execute.
} else {
getLog().info("Skipping.");
}
}
}
И содержимое pom.xml:
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.company.product.plugins</groupId>
<artifactId>ccdiff</artifactId>
<packaging>maven-plugin</packaging>
<version>1.0-SNAPSHOT</version>
<name>Content Catalog Diff</name>
<dependencies>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-plugin-api</artifactId>
<version>2.0</version>
</dependency>
</dependencies>
</project>
Это все в значительной степени взято из Руководства по разработке плагинов Maven .
Итак, похоже, я могу сделать:
$ mvn com.company.product.plugins:ccdiff:diff
И это работает, чтобы выполнить ветку, в которой я собираюсь добавить логику для этого пользовательского инструмента (это своего рода различие XML). Логический параметр - это флаг, который позволит кому-либо отключить выполнение при сборке более крупного проекта. Однако, когда я пытаюсь:
$ mvn com.company.product.plugins:ccdiff:diff -Dccdiff.run=false
По-прежнему отображается сообщение «Executing ...», означающее, что параметр по какой-то причине не устанавливается.
Есть идеи? Я чувствую, что это будет один из этих "D'Oh!" ошибки.