2012-05-03 79 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。

E.g.看https://repository.apache.org/content/groups/snapshots/org/apache/maven/artifact/maven-artifact/3.0-alpha-2-SNAPSHOT/

您可以使用此神器作为

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

这将改变每个新快照部署时间,或者你可以使用

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

这将保持不变。请记住,快照存储库本质上不是静态的,这些工件可能完全消失。只有在使用可以控制的内部存储库服务器的情况下才能做到这一点,并确保这些快照不会消失。

另一种方法是实际切割版本并使用该版本。

3

可以使用versions maven plugin将其固定到特定版本的SNAPSHOT,该特定版本只有在SNAPSHOT在适当的存储库中可用时才有效。但我会建议使用存储库管理器并将SNAPSHOT存入本地存储库,然后与它们一起使用。还有一种可能是获得一个特定的SNAPSHOT并为exmaple 4.0.1-INTERNAL制作一个内部版本,并根据这个版本提供更长的版本。

+0

+1不知道此功能。很有用! –

相关问题