2010-11-22 7 views
1

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.

Antwort

0

Ihr Ziel diff genannt wird ... @goal diff, so Kommandozeile versuchen, ohne 'cc' wie folgt:

$ mvn com.company.product.plugins:ccdiff:diff -Ddiff.run=false 

EDIT: Nehmen 2.

ich das Projekt erstellt, wie Sie haben es und es funktioniert für mich genauso wie du es hast.
Ich bin mit Maven 2.2.1, hier ist die Ausgabe:

C:\java\ws\ccdiff>set MAVEN_OPTS=-DXms_1024M -DXmx=2048M 
[INFO] Scanning for projects... 
[INFO] artifact com.company.product.plugins:ccdiff: checking for updates from central 
[INFO] ------------------------------------------------------------------------ 
[INFO] Building Unnamed - com.company.product.plugins:ccdiff:maven-plugin:1.0-SNAPSHOT 
[INFO] task-segment: [com.company.product.plugins:ccdiff:diff] 
[INFO] ------------------------------------------------------------------------ 
[INFO] [ccdiff:diff {execution: default-cli}] 
[INFO] Executing... 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD SUCCESSFUL 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 8 seconds 
[INFO] Finished at: Tue Nov 23 16:27:10 CAT 2010 
[INFO] Final Memory: 1M/4M 
[INFO] ------------------------------------------------------------------------ 
C:\java\ws\ccdiff>mvn com.company.product.plugins:ccdiff:diff -Dccdiff.run=false 

C:\java\ws\ccdiff>set MAVEN_OPTS=-DXms_1024M -DXmx=2048M 
[INFO] Scanning for projects... 
[INFO] ------------------------------------------------------------------------ 
[INFO] Building Unnamed - com.company.product.plugins:ccdiff:maven-plugin:1.0-SNAPSHOT 
[INFO] task-segment: [com.company.product.plugins:ccdiff:diff] 
[INFO] ------------------------------------------------------------------------ 
[INFO] [ccdiff:diff {execution: default-cli}] 
[INFO] Skipping. 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD SUCCESSFUL 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: < 1 second 
[INFO] Finished at: Tue Nov 23 16:27:20 CAT 2010 
[INFO] Final Memory: 1M/4M 
[INFO] ------------------------------------------------------------------------ 
C:\java\ws\ccdiff> 
+0

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

+0

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

+0

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

Verwandte Themen