0

pom.xml は、分類子を使用して jar を構築します (開発、テスト、ステージ環境用)。例えば

 <profiles>
    <profile>
        <id>dev</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
    </profile>
    <profile>
        <id>jenkins-dev</id>
        <properties>
            <jar.classifier>default-jenkins-dev</jar.classifier>
        ...............
    </profile>

mercurial には 2 つのブランチがあります (デフォルト、2 番目)。

したがって、2 番目のブランチでは、jar 分類子は「second-jenkins-dev」です。

いくつかのモジュールがあります(例:A、B、C)

問題は、デフォルト ブランチの一部のモジュールが最新にビルドされたときに発生します (A モジュールの時点での最新の jar は A-default-jenkins-dev.jar です)。A-second-jenkins-dev.jar を依存関係として持つ代わりに、A-default-jenkins-dev.jar を取得します。

誰か助けてくれませんか?

4

1 に答える 1

3

プロファイルを使用してビルドするブランチを選択する戦略は、混乱を招き、エラーが発生しやすいと思います (ただし、それは個人的な意見にすぎません)。

問題を解決するには、次の点を確認する必要があると思います。

  • ビルドするソースをチェックアウトするためのプロファイルを処理しますか?
  • 依存関係を定義するためにプロファイルを処理しますか?
  • dev プロファイルが activeByDefault であるのはなぜですか?
  • 同じジェンキンスジョブを使用して両方(デフォルトと2番目)をビルドしていますか? この場合、両方のビルドでワークスペースが共有されることに注意してください。

代替ソリューション:

ブランチの pom を変更し、secondこれを処理するためにプロファイルをいじらないでください。アーティファクト<version>を使用してブランチを処理します。<classifier>アーティファクト タイプを区別するために を保持します (たとえば、同じコードに基づいて src jar とクラス jar を構築できます。これが maven 分類子の背後にある考え方です)。

于 2013-01-31T15:59:30.477 に答える