2010-02-08 7 views
35

Tengo un proyecto con 5 módulos en maven. En este momento, cuando hago una "instalación limpia de mvn", genera un oído que contiene los dos frascos, una guerra y un sar de los otros módulos.Eliminando el número de versión del nombre de archivo con Maven

Todos los nombres de los archivos contienen la versión, por ejemplo, ProjectX de oreja 2.0.0.ear, ProjectX-cliente-2.0.0.jar, etc.

tengo que cambiar el nombre de uno de los frascos y de la oído final para omitir la versión en el nombre del archivo. Se debe tener este aspecto:

projectx-ear.ear 
| 
+-- projectx-client.jar 
| 
+-- projectx-misc-2.0.0.jar 
| 
+-- projectx-sar-2.0.0.sar 
| 
\-- projectx-web-2.0.0.web 

En este momento estoy usando los siguientes plugins para construir: maven-plugin y compilador-maven-liberación-plugin

¿Cuál sería la mejor manera de lograr el resultados que espero?

Respuesta

19

En su módulo de oreja, puede pulsar el elemento de project.build.finalName o puede configurar el maven-ear-plugin que soporta un parámetro opcional finalName . Y para configurar el nombre final de un paquete incluido, deberá definir un jarModule y establecer la propiedad bundleFileName para él.

La fuerza configuración final se ve algo así (Voy a demostrar cómo configurar el nombre de la oreja final en la configuración del plugin aquí):

<project> 
    [...] 
    <dependencies> 
    <dependency> 
     <groupId>yourgroupid</groupId> 
     <artifactId>projectx-client</artifactId> 
     <version>2.0.0</version><!-- not mandatory if inherited --> 
    </dependency> 
    [...] 
    </dependencies> 
    [...] 
    <build> 
    [...] 
    <plugins> 
     [...] 
     <plugin> 
     <artifactId>maven-ear-plugin</artifactId> 
     <version>2.4</version> 
     <configuration> 
      <finalName>projectx-ear</finalName> 
      <modules> 
      <jarModule> 
       <groupId>yourgroupid</groupId> 
       <artifactId>projectx-client</artifactId> 
       <bundleFileName>anotherName.jar</bundleFileName> 
      </jarModule> 
      </modules> 
     </configuration> 
     </plugin> 
     [...] 
</project> 
+0

¡Gracias, exactamente lo que necesitaba! – Bani

+2

A partir de ahora, las versiones posteriores del complemento (estoy usando 2.6) le permiten especificar adentro '' a ' no-versión' que elimina el número de versión de sus módulos (por lo que no tiene que definir cada uno de ellos). Sin embargo, el nombre del oído no se ve afectado por esto. – SJuan76

82

Esto se puede conseguir mediante la especificación de la propiedad finalName en su pom así:

<build> 
    <finalName>${project.artifactId}</finalName> 
</build> 
+0

funciona como un encanto. ¡Gracias! –

+0

Debido a este tipo de respuestas de una línea me encanta stackoverflow :) ¡Gracias! – lord5et

Cuestiones relacionadas