13

私は Web アプリケーションの pom ファイル、ビルド プロファイルを持っています。これは、qa テストのために (私のコードで) いくつかの必要なことを行います。

このコードは svn にあり、このコードは Hudson でコンパイルされ、nexus にアーティファクトをデプロイします。

Hudson には 2 つのジョブがあります。1 つは qa プロファイル (-P qa) 用で、もう 1 つは顧客用です。

必要なのは、qa プロファイルでデプロイ フェーズ中にアーティファクトの名前を変更して、nexus に qa 用と顧客用の 2 つの異なる war ファイルがあるようにすることです。

私は(Google検索の後)hudsionで何もしないように見える次を使用します!

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

アイデアはありますか?

4

1 に答える 1

15

実際には、デプロイされているパッケージを構築しているプラ​​グインで「分類子」構成オプションを設定する必要があります: maven-(ear|ejb|jar|rar|war|shade)-plugin:

たとえば、qa 分類子を使用して WAR を構築するには、次のようにします。

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

また、分類子を設定する代わりに、次のいずれかを設定できます (ほとんどのデフォルトは project.build.finalName であるため、そのプロパティを設定するとこれらの多くが更新されます)。

  • 全般的
    • project.build.finalName
  • 戦争プラグイン
    • 戦争名
  • Ear|Jar|Rar|Shade プラグイン
    • 最終名
  • EJB プラグイン
    • jarName

最後に 1 つ注意してください: これは今まで気がつきませんでしたが、ドキュメントを確認すると、RAR プラグインは「分類」オプションをサポートしていないようです。Shade は分類子の概念をサポートしていますが、「shadedClassifierName」プロパティを介してサポートしています。

于 2010-11-30T01:24:09.997 に答える