2010-02-08 21 views
35

J'ai un projet avec 5 modules dans maven. En ce moment, quand je fais un "mvn clean install", il génère une oreille contenant les deux pots, un war et un sar des autres modules.Suppression du numéro de version du nom de fichier avec Maven

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 oreille finale pour omettre la version dans le nom de 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 les résultats que j'attends?

Répondre

19

Dans votre module d'oreille, vous pouvez soit utiliser l'élément project.build.finalName ou vous pouvez configurer le maven-ear-plugin qui prend en charge un finalName paramètre optionnel . Et pour configurer le nom final d'un fichier jar, vous devez définir un jarModule et définir la propriété bundleFileName pour cela.

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

Merci, exactement ce dont j'avais besoin! – Bani

+2

A partir de maintenant, les versions ultérieures du plugin (j'utilise 2.6) vous permet de spécifier dans '' a ' no-version' qui supprime le numéro de version de vos modules (donc vous ne pas avoir à définir chacun d'entre eux). Le nom de l'oreille n'est pas affecté par cela, cependant. – SJuan76

82

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

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

fonctionne comme un charme. Merci! –

+0

En raison de ce genre de réponse une ligne j'aime stackoverflow :) Merci! – lord5et