注意:
この回答はMaven 2にのみ適用されます!言及したLATEST
とRELEASE
metaversionsはMavenの3で削除された「再現性のためには、構築し、」 6年前、。このMaven 3準拠のソリューションを参照してください。
常に最新バージョンを使用したい場合、Mavenには2つのキーワードがあり、バージョン範囲の代わりに使用できます。使用しているプラグイン/依存関係を制御できなくなるため、これらのオプションは注意して使用する必要があります。
プラグインまたは依存関係に依存している場合、LATESTまたはRELEASEのバージョン値を使用できます。LATESTは、特定のアーティファクトの最新リリースバージョンまたはスナップショットバージョンを指します。これは、特定のリポジトリに最後にデプロイされたアーティファクトです。RELEASEは、リポジトリ内の最後の非スナップショットリリースを指します。一般に、非特定バージョンのアーティファクトに依存するソフトウェアを設計することはベストプラクティスではありません。ソフトウェアを開発している場合は、サードパーティライブラリの新しいリリースがリリースされたときにバージョン番号を更新する必要がないように、RELEASEまたはLATESTを便利に使用できます。ソフトウェアをリリースするときは、プロジェクトが特定のバージョンに依存していることを常に確認し、ビルドまたはプロジェクトが制御下にないソフトウェアリリースの影響を受ける可能性を減らす必要があります。
詳細については、MavenブックのPOM構文のセクションを参照してください。または、依存関係バージョンの範囲に関するこのドキュメントを参照してください。
- 角括弧(
[
&]
)は「閉じた」(包括的)を意味します。
- 括弧(
(
&)
)は「オープン」(排他的)を意味します。
以下は、さまざまなオプションの例です。Mavenリポジトリーでは、com.foo:my-fooには次のメタデータがあります。
<?xml version="1.0" encoding="UTF-8"?><metadata>
<groupId>com.foo</groupId>
<artifactId>my-foo</artifactId>
<version>2.0.0</version>
<versioning>
<release>1.1.1</release>
<versions>
<version>1.0</version>
<version>1.0.1</version>
<version>1.1</version>
<version>1.1.1</version>
<version>2.0.0</version>
</versions>
<lastUpdated>20090722140000</lastUpdated>
</versioning>
</metadata>
そのアーティファクトへの依存が必要な場合は、次のオプションがあります(もちろん、他のバージョン範囲を指定して、ここに関連するバージョンのみを表示できます)。
正確なバージョンを宣言します(常に1.0.1に解決されます):
<version>[1.0.1]</version>
明示的なバージョンを宣言します(Mavenが一致するバージョンを選択するときに、衝突が発生しない限り、常に1.0.1に解決されます)。
<version>1.0.1</version>
すべての1.xのバージョン範囲を宣言します(現在は1.1.1に解決されます):
<version>[1.0.0,2.0.0)</version>
制限のないバージョン範囲を宣言します(2.0.0に解決されます):
<version>[1.0.0,)</version>
バージョンをLATESTとして宣言します(2.0.0に解決されます)(Maven 3.xから削除)
<version>LATEST</version>
バージョンをRELEASEとして宣言します(1.1.1に解決されます)(maven 3.xから削除):
<version>RELEASE</version>
デフォルトでは、独自のデプロイによってMavenメタデータの「最新」のエントリが更新されますが、「リリース」エントリを更新するには、MavenスーパーPOMから「リリースプロファイル」をアクティブにする必要があります。「-Prelease-profile」または「-DperformRelease = true」のいずれかでこれを行うことができます
Mavenが依存関係バージョン(LATEST、RELEASE、およびバージョン範囲)を選択できるようにするアプローチでは、ビルド時の問題が発生する可能性があるため、それ以降のバージョンでは動作が異なる可能性がある(たとえば、依存関係プラグインが以前にデフォルトを切り替えたなど)値がtrueからfalseになり、結果が混乱します)。
したがって、一般に、リリースで正確なバージョンを定義することをお勧めします。ティムの答えは指摘し、Mavenの-バージョン-プラグインは依存関係のバージョン、特に更新するための便利なツールです使用-最新バージョン:バージョンとバージョン:使用-最新リリースの目標を。