Question

I ai un projet de 5 modules maven. En ce moment, quand je fais un « mvn clean install », il génère une oreille contenant les deux pots, une guerre et un sar des autres modules.

Tous les noms de fichiers contiennent la version, par exemple, ProjectX-ear-2.0.0.ear, ProjectX-client-2.0.0.jar, etc.

Je dois renommer un des bocaux et l'oreille finale omettre la version dans le nom du fichier. Il devrait ressembler à ceci:

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 ce moment je suis en utilisant les plug-ins suivants pour construire: maven-plugin-compilateur et maven-release-plugin

Quelle serait la meilleure façon d'atteindre les résultats que j'ATTENDRE?

Était-ce utile?

La solution

Dans votre module d'oreille, vous pouvez utiliser l'élément project.build.finalName ou vous pouvez configurer le maven-plugin-oreille qui prend en charge un finalName paramètre optionnel. Et pour configurer le nom final d'un pot fourni, vous devrez définir un jarModule et définir la propriété de bundleFileName pour elle.

La puissance de configuration finale ressemble à quelque chose comme ça (je vais montrer comment définir le nom de l'oreille finale dans la configuration du plugin ici):

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

Autres conseils

Vous pouvez y parvenir en spécifiant la propriété finalName dans votre pom comme ceci:

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

point:. Unique JAR / WAR

Pour créer sans numéro de version dans le nom, en pom.xml ajoutez simplement le code:

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

Donc, si vous compilez, par exemple projectx_misc, vous obtenez projectx_misc.jar .

Qu'est-ce qui arrive à moi? Quand je compilez le même paquet d'un projet POM (en Netbeans), tous les bocaux ont la version dans le nom et l'AER comprennent les archives xxx-version.jar.

Alors, le deuxième point. Le problème EAR

Dans le fichier pom.xml de l'AER, changer le maven-plugin-oreille ajouter dans la configuration de cette propriété:

<fileNameMapping>no-version</fileNameMapping>

Ceci est mon plugin réglage par exemple:

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

Alors, maintenant, quand je compile toutes les archives d'un pom du projet, tous les numéros de version sont retirés des pots.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top