Das sollte einfach sein - ich denke, ich übersehe gerade etwas. Ich habe eine einfache Mojo:Einfaches Maven Mojo Plug-in: Boolscher Parameter
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.");
}
}
}
und die pom.xml Inhalt:
<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>
Das ist alles so ziemlich aus dem Maven plugin development guide gezogen.
So scheint es, was ich tun kann:
$ mvn com.company.product.plugins:ccdiff:diff
Und das funktioniert den Zweig auszuführen, wo ich in der Logik für dieses Anpassungs-Tool (es ist eine Art eines XML-diff) plop werde. Der boolesche Parameter ist ein Flag, mit dem jemand die Ausführung abbrechen kann, wenn er ein größeres Projekt erstellt. Allerdings, wenn ich versuche:
$ mvn com.company.product.plugins:ccdiff:diff -Dccdiff.run=false
Es ist immer noch die „Ausführen ...“ Meldung anzeigt, was bedeutet die Parameter aus irgendeinem Grunde nicht eingestellt zu werden.
Irgendwelche Ideen? Ich denke, es wird nur eines dieser "D'oh!" Fehler.
Nein, dies immer noch nicht funktioniert. Ich habe den Parameterausdruck, der 'ccdiff.run' referenziert, von dem ich dachte, dass er übereinstimmen muss. Ich werde versuchen, das zu '$ {diff.run}' zu ändern, um zu sehen, ob das funktioniert (Ed. Auch keine Würfel dazu). – emptyset
Seltsam. Ich kopierte die Mojo- und die Pom-Datei in ein separates Verzeichnis, um das Problem außerhalb des vorhandenen Projekts zu replizieren. Ich habe das stattdessen: 'Erforderliches Ziel nicht gefunden: com.company.product.plugins: ccdiff: diff in com.company.product.plugins: ccdiff: 1.0-SNAPSHOT' – emptyset
Es stellte sich heraus, dass ich das Verzeichnis src/main/java fehlte unter anderem - und musste Maven-Compiler-Plugin mit Quelle/Ziel auf 1,5 ... – emptyset