2012-05-03 9 views
6

NexusリポジトリマネージャでホストされているApacheのMavenリポジトリから、さまざまなLuceneとSolr Mavenのアーティファクトを構築しています。アーティファクトはバージョン4.0-SNAPSHOTであり、古いアーティファクトが定期的に削除されて毎日更新されます。NexusリポジトリマネージャでどのようにMavenアーティファクトのバージョンをペグしますか?

Mavenクライアントがsolr-core 4.0-SNAPSHOTを要求するたびに、上流に新しいバージョンがあったとしても、特定の日付にアーティファクトをペグする方法が不思議でした。

また、最新の4.0-SNAPSHOTに明示的に更新する方法も知っていますが、ダウンロードされた以前のバージョンはすべて保持しておきたいと思います。

具体的には、「Apache Snapshots」リポジトリは、Nexusをインストールするときに設定されるデフォルトのリポジトリです。

答えて

3

スナップショットがリポジトリサーバーにデプロイされると、新しいデプロイメントはそれぞれ、イテレータ番号が付加されたタイムスタンプ付きのバージョンとして実際にデプロイされます。特定のバージョンを使用する場合は、-SNAPSHOTではなく、スナップショットのタイムスタンプバージョンを使用します。

など。あなたはそれを新しいスナップショットが展開されているか、あなたは同じとどまる

<groupId>org.apache.maven.artifact</groupId> 
<artifactId>maven-artifact</artifactId> 
<version>3.0-alpha-2-20090214.020928-1</version> 

を使用することができ、それぞれの時間を変更することになる

<groupId>org.apache.maven.artifact</groupId> 
<artifactId>maven-artifact</artifactId> 
<version>3.0-alpha-2-SNAPSHOT</version> 

としてこのアーティファクトを使用することができhttps://repository.apache.org/content/groups/snapshots/org/apache/maven/artifact/maven-artifact/3.0-alpha-2-SNAPSHOT/

を見てください。ただし、スナップショットリポジトリは本質的に静的ではなく、これらの成果物は完全に消滅する可能性があることに注意してください。内部リポジトリサーバを使用している場合にのみ、それを制御できます。したがって、それらのスナップショットが消えないようにすることができます。

これを行う別の方法は、実際にリリースを切り取り、それを使用することです。

3

versions maven pluginを使用して特定のバージョンのSNAPSHOTに固定することができます。このスナップショットは、適切なリポジトリでSNAPSHOTが使用できる限り有効です。しかし、私はリポジトリマネージャを使用し、SNAPSHOTをローカルのリポジトリに入れて、代わりにそれらを使って作業することをお勧めします。可能なことは、特定のSNAPSHOTを取得して、EXML 4.0.1-INTERNALのような内部リリースを作成し、それに基づいてより長い時間を利用できるようにすることです。

+0

+1この機能は認識されませんでした。非常に便利! –

関連する問題