2010-11-04 8 views
16

estoy usando el complemento maven assembly para empacar un archivo jar. Pero cuando ejecuto mvn package, siempre dispare el [jar: jar {execution: default-jar}] para crear un archivo jar predeterminado. Así que tendré 2 archivos jar (uno creado por plugin de ensamblaje y otro creado por maven jar que no quiero que se cree). ¿Cómo puedo desactivar la ejecución: default-jar.deshabilitar la ejecución: jar por defecto

en mi pom.xml, estoy usando: <packaging>jar</packaging>. No quiero cambiarlo a <packaging>pom</packaging>.

Respuesta

33

(...) Así que voy a tener 2 archivos JAR (una creada por el plugin de montaje y uno creado por maven jar que no quiero que se cree).

Parece que estás haciendo cosas bastante complicadas. Quizás Maven no sea la herramienta correcta en tu caso.

¿Cómo puedo desactivar la ejecución: jar por defecto.

puede establecer el <phase> de la ejecución correspondiente a algo desconocido, al igual que none:

<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> 

Esto parece funcionar, siempre y cuando usted está proporcionando algo más que ser instalado, como un conjunto (Solo probé install). Pero, por supuesto, este es un truco.

+0

Es un truco, pero es genial saber este truco. ¡Gracias! (+1) –

+0

Por cierto, ¿alguna vez duermes? También estás en CET, ¿verdad? –

+0

@seanizer: LOL. Sí, lo hago :) Y no, actualmente no, me estoy mudando. –

3

Aunque no es una respuesta directa a la pregunta, usted podría excluir el frasco creado por frasco experta en el uso de <useProjectArtifact>false</useProjectArtifact>

+0

Gracias Raghuram – David