web-dev-qa-db-fra.com

En maven - comment renommer le fichier .war en sortie en fonction du nom du profil utilisé

J'ai trois profils dans mon pom.xml pour notre application ...

  1. dev (à utiliser sur un développeur)
  2. qa (à utiliser sur notre serveur qa interne)
  3. prod (production).

Lorsque nous exécutons notre navigateur, les trois profils génèrent un fichier war portant le même nom. Je voudrais sortir $profilename-somearbitraryname.war

Des idées?

33
benstpierre

Vous vous êtes bien répondu:

<profiles>
    <profile>
        <id>dev</id>
        <properties>
            <rp.build.warname>dev</rp.build.warname>
        </properties>
    </profile>
    <profile>
        <id>qa</id>
        <properties>
            <rp.build.warname>qa</rp.build.warname>
        </properties>
    </profile>
    <profile>
        <id>prod</id>
        <properties>
            <rp.build.warname>prod</rp.build.warname>
        </properties>
    </profile>
</profiles>

mais il existe un moyen plus simple de redéfinir le nom WAR:

<build>
    <finalName>${rp.build.warname}-somearbitraryname</finalName>
    <!-- ... -->
</build>

maven-war-plugin n'est pas nécessaire.

60

La réponse était simple ...

Définissez une propriété dans chaque profil comme ceci ...

<profile>
    <id>qa</id>
    <properties>
        <rp.build.warname>ourapp-qa</rp.build.warname>
    </properties>
</profile>

Ajoutez ensuite ceci à vos plugins ...

<plugin>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.1.1</version>
    <configuration>
        <packagingExcludes>WEB-INF/web.xml</packagingExcludes>
        <warName>${rp.build.warname}</warName>
    </configuration>
</plugin>
25
benstpierre