6

我正在针对 Nexus 存储库管理器中托管的 Apache Maven 存储库中的各种 Lucene 和 Solr Maven 工件进行构建。工件是版本4.0-SNAPSHOT,每天都会更新,旧的工件会定期删除。

我想知道如何将工件与特定日期挂钩,因此每当 Maven 客户端请求时solr-core 4.0-SNAPSHOT,即使上游有更新的版本,它也会获得相同的版本。

我还想知道如何明确更新到最新4.0-SNAPSHOT版本,但仍保留所有以前下载的版本。

具体来说,“Apache Snapshots”存储库是安装 Nexus 时设置的默认存储库。

4

2 回答 2

3

您可以使用版本 maven 插件固定到特定版本的 SNAPSHOT,只要 SNAPSHOT 在相应的存储库中可用,该版本才有效。但我建议使用存储库管理器并将 SNAPSHOT 放入本地存储库并与它们一起使用。还有可能的是获得一个特定的 SNAPSHOT 并从中发布一个内部版本,例如 4.0.1-INTERNAL 之类的,并在此基础上提供更长的可用时间。

于 2012-05-03T07:17:35.003 回答
3

将快照部署到存储库服务器时,每个新部署实际上都部署为带有时间戳的版本,并附加了迭代器编号。如果您想使用特定版本,您只需使用快照的时间戳版本而不是 -SNAPSHOT。

例如查看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>

这将保持不变。但是请记住,快照存储库本质上不是静态的,这些工件可能会完全消失。仅当您使用可以控制的内部存储库服务器时才这样做,从而确保这些快照不会在您身上消失。

另一种方法是实际删除一个版本并使用它..

于 2012-05-03T20:53:06.540 回答