Pregunta

Tengo un proyecto con 5 módulos de experto. En este momento, cuando hago un "mvn instalación limpia", que genera una oreja que contiene los dos frascos, uno de guerra y uno sar de los otros módulos.

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 el oído final a 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-compilador-plugin y experto de liberación-plugin

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

¿Fue útil?

Solución

En el módulo de oreja, puede pulsar el elemento de project.build.finalName o puede configurar la maven-oreja-plugin que soporta un finalName parámetro opcional. Y para configurar el nombre final de un tarro incluido, tendrá que definir un jarModule y establecer la propiedad bundleFileName por ello.

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>

Otros consejos

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

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

Punto uno:. Sola JAR / WAR

Para crear sin número de versión en el nombre, en pom.xml sólo tiene que añadir el código:

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

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

¿Qué me pasa? Cuando compilo el mismo paquete de un proyecto POM (en Netbeans), todos los frascos tienen la versión en el nombre y el oído son los archivos xxx-version.jar.

Por lo tanto, el punto dos:. El problema EAR

En pom.xml de la EAR, cambiar el experta en la oreja-plugin añadir en la configuración de esta propiedad:

<fileNameMapping>no-version</fileNameMapping>

Esta es mi configuración de plug-in, 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>

Por lo tanto, ahora cuando compilar todos los archivos de un pom proyecto, todos los números de versión se eliminan de los frascos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top