4

2 つのプロジェクトを想像してみてください。1 つ目は、framework-coreバージョンが1.1.0あり、いくつかのスナップショット ビルドがあるプロジェクトです。もう 1 つは、ビルド イテレーション番号 9 にexample-business次の依存関係があるプロジェクトです。framework-core

<dependency>
  <groupId>org.example</groupId>
  <artifactId>framework-core</artifactId>
  <version>1.1.0-20100518.134928-9</version>
</dependency>

mvn installで が呼び出されるとどうなりframework-coreますか? アーティファクトがフォルダーにコピーされ、名前が付けられていることがわかりました*.1.1.0-SNAPSHOT.jar(予想どおり)。

1.1.0-SNAPSHOTこれは、このバージョンが依存関係として定義され、正確なビルドではない場合にのみ、このバージョンが使用されるという仮定につながりました。

Maven リポジトリーにデプロイせずにローカルのものをテストするには: を呼び出しmvn install、依存関係を1.1.0-SNAPSHOT-- に変更すると、インストールされたばかりの成果物が使用されますか? installまたは、(ライフサイクル フェーズを使用して) 特定のビルドを上書きすることは可能ですか?

4

1 に答える 1

9

タイムスタンプバージョンの依存関係を使用する場合(この場合の-SNAPSHOTように)、バージョンをロックし、Mavenにこのバージョンを使用するように明示的に指示します。新しいものがビルドされても、依存関係は更新されません。これが「ロックされたスナップショット」のポイントです。-20100518.134928-9-SNAPSHOT

最新のものを使用する場合は-SNAPSHOT、-SNAPSHOTバージョンへの依存関係を宣言して、依存関係のロックを解除します。

<dependency>
  <groupId>org.example</groupId>
  <artifactId>framework-core</artifactId>
  <version>1.1.0-SNAPSHOT</version>
</dependency>

手動で変更することは大したことではありませんが、VersionsMavenプラグインの次の目標が状況によっては役立つ場合があります。

  • versions:lock-snapshots pomですべての-SNAPSHOTバージョンを検索し、それらをその-SNAPSHOTの現在のタイムスタンプバージョン(例:-20090327.172306-4)に置き換えます。
  • versions:unlock-snapshotsタイムスタンプでロックされたすべてのスナップショットバージョンをpomで検索し、それらを-SNAPSHOTに置き換えます。バージョン:ロック解除-スナップショット
于 2010-05-19T12:57:53.763 に答える