2010-11-16 8 views
9

J'ai dans le fichier pom d'une application web, un profil de construction, qui fait des choses nécessaires (dans mon code) pour le test de qa.modifier nom d'artefact déployé basé sur le profil

Je possède ce code sur svn et ce code est compilé à Hudson, qui déploie des artefacts en lien ..

Hudson a deux emplois, l'un pour le profil de qa (-P qa) et un pour les clients. Ce dont j'ai besoin est que je change dans mon profil qa le nom de l'artefact pendant la phase de déploiement, de sorte que Nexus a deux fichiers de guerre différents, un pour qa et un pour le client.

J'utilise (après la recherche Google) ce qui suit qui ne ressemble à rien dans hudshon!

<profile> 
     <id>qa</id> 
     <build> 
      <plugins> 
       <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-deploy-plugin</artifactId> 
        <version>2.5</version> 
        <configuration> 
         <classifier>qa</classifier> 
        </configuration> 
       </plugin> 
      </plugins> 
     </build> 
    </profile> 

Une idée d'autre?

Répondre

12

Vous devez réellement définir l'option de configuration « classificateur » sur le plug-in qui est la construction du paquet qui est en cours de déploiement: maven- (oreille | ejb | pot | rar | guerre | ombre) -plugin:

Par exemple , de construire une guerre avec un classificateur qa, vous procédez comme suit:

<profile> 
    <id>qa</id> 
    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-war-plugin</artifactId> 
       <version>2.1.1</version> 
       <configuration> 
        <classifier>qa</classifier> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 
</profile> 

en outre, au lieu de définir le classificateur vous pouvez définir les éléments suivants (par défaut à la plupart project.build.finalName, de sorte que la mise en la propriété met à jour plusieurs d'entre eux):

  • général
    • project.build.finalName
  • War Plugin
    • warName
  • oreille | Pot | Rar | Shade Plugin
    • finalName
  • EJB Plugin
    • nomjar

Une dernière remarque: je ne avais jamais réalisé auparavant, mais en regardant sur la documentation, il semble que le plugin RAR ne prend pas en charge l'option "classification". Shade supporte le concept de classificateur, mais le fait via la propriété "shadedClassifierName".

Questions connexes