2010-11-04 9 views
16

Ich benutze Maven Assembly-Plugin, um eine JAR-Datei zu packen. Aber wenn ich mvn package ausführen, Auslöser Maven immer die [jar: jar {Ausführung: default-jar}], um eine Standard-JAR-Datei zu erstellen. So werde ich 2 JAR-Dateien haben (eine erstellt von Assembly-Plugin und eine von Maven Jar erstellt, die ich nicht erstellt werden möchte). Wie kann ich die Ausführung abschalten: default-jar.Deaktivieren Sie die Ausführung: default-jar

in meiner pom.xml verwende ich: <packaging>jar</packaging>. Ich möchte es nicht zu <packaging>pom</packaging> ändern.

Antwort

33

(...) Also ich werde zwei JAR-Dateien haben (ein durch Montage-Plugin erstellt und eines erstellt von maven jar, das ich nicht erstellt werden möchte).

Sieht aus wie Sie ziemlich komplizierte Dinge tun. Vielleicht ist Maven in deinem Fall nicht das richtige Werkzeug.

Wie kann ich die Ausführung deaktivieren: default-jar.

Sie können die <phase> der entsprechenden Ausführung etwas Unbekanntes, wie none gesetzt:

<plugin> 
    <artifactId>maven-jar-plugin</artifactId> 
    <version>2.3.1</version> 
    <executions> 
     <execution> 
     <id>default-jar</id> 
     <phase>none</phase> 
     </execution> 
    </executions> 
    </plugin> 
    <plugin> 
    <artifactId>maven-assembly-plugin</artifactId> 
    <version>2.2</version> 
    <configuration> 
     <descriptorRefs> 
     <descriptorRef>jar-with-dependencies</descriptorRef> 
     </descriptorRefs> 
    </configuration> 
    <executions> 
     <execution> 
     <id>make-assembly</id> 
     <!-- this is used for inheritance merges --> 
     <phase>package</phase> 
     <!-- append to the packaging phase. --> 
     <goals> 
      <goal>single</goal> 
      <!-- goals == mojos --> 
     </goals> 
     </execution> 
    </executions> 
    </plugin> 

Dies scheint so lange zu arbeiten, wie Sie etwas bieten sonst installiert werden, wie eine Anordnung (Ich habe nur install getestet). Aber natürlich ist das ein Hack.

+0

Es ist ein Hack, aber es ist toll, diesen Hack zu kennen. Vielen Dank! (+1) –

+0

BTW, schläfst du jemals? Sie sind auch auf CET, nicht wahr? –

+0

@seanizer: LOL. Ja ich tue :) Und nein, ich bin momentan nicht, ich ziehe um. –

3

Während keine direkte Antwort auf die Frage, könnte man das Glas durch Maven jar erstellt ausschließen mit <useProjectArtifact>false</useProjectArtifact>

+0

Danke Raghuram – David