2009-06-23 14 views
8

¿Existe una opción en Maven (2.0.9) para desactivar la compresión de jar para toda la operación? Estoy usando Maven tanto en el servidor de compilación como en mi estación de trabajo y me gustaría desactivar la compresión de jar en las compilaciones de la estación de trabajo (solo desarrollo). Sin embargo, no quiero tocar todos los poms y crear dos versiones para cada uno.Cómo desactivar la compresión de jar en Maven

¿Hay una opción para desactivar la compresión de jar por variable de entorno, archivo o tocando un solo pom.xml?

Respuesta

1

Bueno, podría definir diferentes plugins jar por perfil. ¿Sería eso aceptable?

+0

cómo? ¿Se puede hacer en el pom.xml de nivel superior? –

+0

@Ran Biron: No estoy del todo seguro, pero como sabrá, puede redefinir los complementos por perfil. He trabajado poco en proyectos de POM de varios niveles para probar si la selección de perfiles se transfiere a los poms de niños, pero puedo imaginar que puede ser así. Lo probaría yo mismo, pero es hora de irme de la oficina =) – mikek

+0

ver mi propia respuesta para más detalles. Gracias. –

15

Al parecer es posible mediante la definición siguiente:

<profile><id>...</id> 
    <build> 
    <pluginManagement> 
     <plugins> 
      <plugin> 
       <configuration> 
        <archive> 
         <compress>false</compress> 
        </archive> 
       </configuration> 
      </plugin> 
     </plugins> 
    </pluginManagement> 
    </build> 
</profile> 

en el pom.xml de nivel superior. Como nota al margen: esto realmente no resolvió mi problema inicial de la compilación tomando demasiado tiempo.

+0

¿Tiene esto la ventaja de trabajar con archivos war y ear? – sal

+0

no idea - intente y cuéntenos :) –

+0

¿Por qué aceptó la otra respuesta? El tuyo es mejor;) –

10

Agregue lo siguiente a la sección build.plugins en el archivo pom.xml de su proyecto.

<plugin> 
    <artifactId>maven-jar-plugin</artifactId> 
    <version>2.2</version> 
    <configuration> 
     <archive> 
      <compress>false</compress> 
     </archive> 
    </configuration> 
</plugin> 

Esto desactiva la compresión del archivo jar para su proyecto maven.

+0

¿Cómo se apaga solo por un artefacto? Diga un archivo de clave o algo que si se almacena comprimido no funcionará ... – ggb667

1

fin encontré la respuesta de este tema (apagar la compresión frasco), configurar directamente en el POM, también me encontré con otros dos detalles interesantes: poner un nombre del frasco diferente y incluye una definición de "manifiesto". Aquí está mi fragmento de pom.

<build> 
    <finalName>***FileName***</finalName> 

    <plugins> 

     <!-- Set a JDK compiler level --> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>2.3.2</version> 
      <configuration> 
       <source>${jdk.version}</source> 
       <target>${jdk.version}</target> 
      </configuration> 
     </plugin> 

     <!-- Make this jar executable --> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-jar-plugin</artifactId> 
      <configuration> 
       <archive> 
       <manifest> 
        <!-- Jar file entry point --> 
        <mainClass>***package.test.ClassTest***</mainClass> 
       </manifest> 
       <compress>***false***</compress> 
       </archive> 
      </configuration> 
     </plugin> 

    </plugins> 
</build> 
Cuestiones relacionadas