Dans maven - comment renommer la sortie.fichier war basé sur le nom du profil utilisé

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

  1. dev (pour une utilisation sur un développeur)
  2. qa (pour une utilisation sur notre serveur qa interne)
  3. prod (production).

Lorsque nous exécutons notre Maven construire les trois profils ouput un fichier de guerre avec le même nom. Je voudrais sortir $profilename-somearbitraryname.war

Des idées?

33
demandé sur Tuan Dang 2011-05-25 23:12:42

3 réponses

Vous avez 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 de guerre:

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

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

60
répondu Tomasz Nurkiewicz 2014-10-20 07:07:27

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
répondu benstpierre 2014-10-20 07:08:23

Dans maven, vous devez utiliser <bundleFileName> dans le <module>

Vous devez suivre ce lien pour vous assurer que vos modules sont réécrits: http://maven.apache.org/plugins/maven-ear-plugin/examples/customizing-a-module-filename.html

 <build>
      <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-ear-plugin</artifactId>
                <version>2.10.1</version>
                <configuration>
                 [...]
                    <modules>
                        <ejbModule>
                            <groupId>artifactGroupId</groupId>
                            <artifactId>artifactId</artifactId>
                            <bundleFileName>anotherName-1.2.3.jar</bundleFileName>
                        </ejbModule>
                    </modules>
                </configuration>
            </plugin>
        </plugins>
  </build>
0
répondu David Canós 2017-11-23 20:34:41