plugin org modules generar example create java build maven-2 ear maven-ear-plugin

java - org - packaging ear</ packaging



Eliminando el número de versión del nombre de archivo con Maven (3)

En su módulo de oído, puede usar el elemento project.build.finalName o puede configurar el maven-ear-plugin que admite un parámetro opcional finalName . Y para configurar el nombre final de un jar agrupado, deberás definir un jarModule y establecer la propiedad bundleFileName para ello.

La configuración final podría ser algo así (aquí demostraré cómo establecer el nombre final del oído en la configuración del complemento):

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

Tengo un proyecto con 5 módulos en maven. En este momento, cuando hago una "instalación limpia mvn", genera un oído que contiene los dos tarros, una guerra y un sar de los otros módulos.

Todos los nombres de archivos contienen la versión, por ejemplo, projectx-ear-2.0.0.ear, projectx-client-2.0.0.jar, etc.

Necesito cambiar el nombre de uno de los frascos y el oído final para omitir la versión en el nombre del archivo. Debe tener un aspecto como este:

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

Ahora mismo estoy usando los siguientes complementos para compilar: maven-compiler-plugin y maven-release-plugin

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


Puedes lograr esto especificando la propiedad finalName en tu pom así:

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


Punto uno: solo JAR / WAR.

Para crearlo sin el número de versión en nombre, en pom.xml simplemente agregue el código:

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

Por lo tanto, si compila, por ejemplo projectx_misc, obtiene projectx_misc.jar .

¿Que me pasa? Cuando compilo el mismo paquete de un proyecto POM (en Netbeans), todos los archivos tienen la versión en el nombre y el EAR incluye los archivos xxx-version.jar.

Entonces, punto dos: el problema EAR.

En el archivo pom.xml del EAR, cambie el complemento maven-ear agregando en la configuración esta propiedad:

<fileNameMapping>no-version</fileNameMapping>

Esta es mi configuración de plugin, por ejemplo:

<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-ear-plugin</artifactId> <version>2.8</version> <configuration> <version>6</version> <defaultLibBundleDir>lib</defaultLibBundleDir> <fileNameMapping>no-version</fileNameMapping> </configuration> </plugin>

Entonces, cuando compilo todos los archivos de un proyecto, todos los números de versión se eliminan de los archivos jar.