0

メインプロジェクトのPOMがあります。10 から 15 のプロファイルが定義されていると思います。依存関係は一般的なもので、おそらく 20 ほどの数になります。

プロファイルがテスト用か実稼働用かによってバージョンが異なる (少なくとも) 1 つの依存関係があります。本番デプロイには次のものが必要です。

<version>1.0.3.RELEASE</version>

開発およびステージングデプロイがかかるのに対し、依存関係バージョンとして

<version>1.0.3.STAGING</version>

これを手動で切り替える必要がないように設定したいと思います。明らかな解決策の 1 つは、プロファイル内で依存関係を定義することです。それに関する問題は、私たちが持っているプロファイルの数です。バージョン番号が増えるたびに、どこかでバージョンを更新し忘れないように注意する必要があります。

トークン化について読み、次のように一般的な依存関係を宣言しようとしました。

    <dependency>
        <groupId>org.groupId</groupId>
        <artifactId>lib-artifactId</artifactId>
        <version>1.0.3.${lib-artifactId.version}</version>
    </dependency>

そして追加

        <properties>
            <lib-artifactId.version>RELEASE</lib-artifactId.version>
        </properties>

必要に応じて RELEASE を STAGING に変更して、各プロファイルに追加します。

それはうまくいきません。エラーは、バージョンのライブラリが見つからないという趣旨のものです

1.0.3.${lib-artifactId.version}

つまり、トークンを代用していません。

どうすればこれを解決できますか?

4

3 に答える 3

0

プロファイルでトークンを定義する代わりに、メイン ファイルの依存関係に置き換えるには、次を試すことができます。

以前と同じように、各プロファイルの依存関係を維持します。バージョンを必要に応じてトークン ${lib-artifactId.release_version} または ${lib-artifactId.staging_version} に置き換え、最上位の pom ファイルで 2 つのトークンを定義します。

于 2013-08-06T10:19:47.253 に答える
0

理想的には、maven の CLASSIFIERS を使用する必要があります

<dependency>
 <groupId>org.groupId</groupId>
 <artifactId>lib-artifactId</artifactId>
 <version>1.0.3</version>
 <classifier>${lib-artifactId.version}</classifier>
</dependency>

1.0.3-RELEASE に解決されます

于 2013-08-06T10:30:37.903 に答える