2009-10-06 5 views
1

J'utilise maven/hudson pour construire mon projet. L'un des objectifs de hudson est mvn package donc j'ai une distribution complète produite sur chaque build. Existe-t-il un moyen (peut-être un argument pour empaqueter?) Que je peux ajouter le numéro de construction au nom d'archive produit?Jeton pour le nom du paquet Maven

grâce,

Jeff

Répondre

2

Essayez les solutions suivantes. Il ne devrait être activé que si la propriété BUILD_NUMBER est définie, donc vous génèrerez quand même des builds correctement nommés quand vous n'utilisez pas hudson.

<profiles> 
    <profile> 
     <id>hudson-build</id> 
     <activation> 
      <property> 
       <name>BUILD_NUMBER</name> 
      </property> 
     </activation> 
     <build> 
      <finalName>${artifactId}-${version}-${BUILD_NUMBER}</finalName> 
     </build> 
    </profile> 
</profiles> 

Je vous suggère de mettre cela en une pom.xml de base qui peut ensuite être référencé en tant que parent à vos autres configs pom.xml.

Pour obtenir la liste des autres propriétés transmises par hudson aux builds maven, voir http://weblogs.java.net/blog/johnsmart/archive/2008/03/using_hudson_en.html.

+0

J'ai fini par aller avec cette solution est à était plus simple. Les deux sont de très bonnes réponses. Merci. –

1

Vous pouvez passer une propriété arbitraire à un build Maven en utilisant -D[key]=[value], par exemple -DbuildNumber=1234 configurer alors la version dans votre pom comme `1.0.0 - $ {} buildNumber. Cette approche va à l'encontre du principe général de Maven. Vous feriez mieux d'utiliser le traitement SNAPSHOT de Maven. SNAPSHOT est un mot-clé à Maven pour mettre à jour la dépendance à chaque fois.

Vous pouvez également utiliser le buildnumber-maven-plugin pour ajouter automatiquement un numéro à la version de construction à chaque fois. Voir ce answer pour quelques détails. Le plugin buildnumber peut être configuré pour produire une révision basée sur la révision SCM, un horodatage ou sur une séquence.

+0

merci pour la réponse rapide. –

+0

J'ai corrigé la référence à l'autre réponse –

+0

Comme je lisais le premier lien que j'ai réalisé par la version de roject a le snapshot de nom dedans mais il n'est pas développé. Dans mon POM, ma version est listée comme 0.0.1-SNAPSHOT mais le nom zip (créé par mvn package) est -0.0.1-SNAPSHOT-package.zip. Est-ce que je ne l'ai pas configuré pour être agrandi correctement? –