20

私のMavenプロジェクトでは、次のような依存関係を使用しています。

<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpclient</artifactId>
    <version>[4.2.2, 5.0)</version>
</dependency>

次のメジャーバージョン(5.0)ではAPIが変更される可能性があるため、プロジェクトでブランチ4.xで利用可能な最新の安定バージョンを使用する必要があります。

今朝のバグ調査によると、この式[4.2.2、5.0)は利用可能なすべてのバージョンを取得します。私の場合:4.3-alpha1。

Mavenにバージョン範囲内の最新リリースバージョンを使用させるにはどうすればよいですか?

4

2 に答える 2

17

Mavenの範囲選択に関するドキュメントを見ると、次のコメントに気づきました。

依存関係の範囲の解決は、明示的な境界として含まれていない限り、スナップショット(開発バージョン)に解決されるべきではありません。

アーティファクトのバージョンがで終わっていない限り-SNAPSHOT、Mavenはそれを有効なリリースビルドと見なします。私の知る限り、-alpha1Mavenにとって特別な意味はありません。これは単なる別のランダム修飾子です。

とにかく、バージョン範囲を放棄することを強くお勧めします。予測可能なビルドは、安定したプロジェクトの目標である必要があり、バージョン範囲はそれに直面します。

于 2013-01-21T08:32:37.033 に答える
1

Maven 3は、アルファ、ベータ、スナップショットのバージョン管理も次の順序でサポートしています。 alpha < beta < snapshot

于 2016-06-21T14:08:35.420 に答える