2011-02-09 8 views
8

Tengo un proyecto mavenized java (Maven2) que quiero construir en un jar, que es bastante fácil al proporcionar el descriptorRef jar-with-dependence en el pom.xml.construyendo un frasco e incluyéndolo en un zip con maven-assembly-plugin

Sin embargo, también tengo que implementar mi proyecto en un zip con algunos archivos .exe y .bat, entre otros, desde una carpeta bin que llame al contenedor. (Estoy usando Tanuki pero no importa para el caso de uso, creo)

En otras palabras, necesito una compilación en la que primero mis fuentes (y dependencias) se empaquetan en un contenedor y ese jar se pone en un zip con algunos archivos adicionales de la carpeta bin.

¿Qué debo poner en mi pom.xml y 'assembly'.xml?

Respuesta

8

Maven-assembly-plugin es la herramienta adecuada para hacer eso.

Debe declarar este complemento en la sección "compilación" de su pom y crear otro archivo de configuración "assembly.xml" en la raíz de su proyecto. En este archivo, tu definirá el contenido de tu archivo zip.

Las opciones de configuración se describen en el sitio oficial: http://maven.apache.org/plugins/maven-assembly-plugin/

Aquí está un ejemplo de configuración básica de este plugin que debe adaptarse a sus necesidades.

POM config: config

<plugin> 
    <artifactId>maven-assembly-plugin</artifactId> 
    <configuration> 
     <finalName>zipfile</finalName> 
     <descriptors> 
      <descriptor>${basedir}/assembly.xml</descriptor> 
     </descriptors> 
    </configuration> 
    <executions> 
     <execution> 
      <id>make-assembly</id> 
      <phase>package</phase> 
      <goals> 
       <goal>single</goal> 
      </goals> 
     </execution> 
    </executions> 
</plugin> 

Asamblea:

<assembly> 
    <formats> 
     <format>zip</format> 
    </formats> 

    <fileSets> 
     <fileSet> 
      <directory>to_complete</directory> 
      <outputDirectory /> 
      <includes> 
       <include>**/*.jar</include> 
       <include>**/*.bat</include> 
       <include>**/*.exe</include> 
      </includes> 
     </fileSet> 
    </fileSets> 
</assembly> 
+0

Gracias por su respuesta, que fue el puntapié inicial fundamental que necesitaba para conseguir que funcione. – NomeN

+1

Sí, tuve que agregar otro descriptor que hace que mi jar sin embargo. En realidad, acabo de copiar el formato de descriptor de jar-with-depencies del sitio que mencionaste, ya que al usar el descriptorRef jar-with-dependencies envolvió la compilación zip. es decir, construye el jar 'sic' primero, luego el zip y luego el de-dependencies.jar, que crea un zip con el primer jar (inútil) pero sin el segundo, ¿no? – NomeN