web-dev-qa-db-ja.com

Mavenで-使用中のプロファイルの名前に基づいて出力.warファイルの名前を変更する方法

私のアプリケーションのpom.xmlには3つのプロファイルがあります...

  1. dev(開発者向け)
  2. qa(内部qaサーバーで使用)
  3. prod(生産)。

Mavenビルドを実行すると、3つのプロファイルすべてが同じ名前のwarファイルを出力します。 $profilename-somearbitraryname.warを出力したい

何か案は?

34
benstpierre

あなたは自分自身を正しく答えました:

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

しかし、WAR名を再定義する簡単な方法があります。

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

番号 maven-war-pluginが必要です。

60

答えは簡単でした...

このように各プロファイルでプロパティを定義します...

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

次に、これをプラグインに追加します...

<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

Mavenでは、<bundleFileName><module>を使用する必要があります

モジュールが書き換えられていることを確認するには、このリンクをたどってください。 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
David Canós