繁体   English   中英

如何在Nexus存储库管理器中绑定Maven工件的版本?

[英]How do you peg versions of Maven artifacts in the Nexus repository manager?

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

我想知道如何将工件挂钩到特定的日期,所以每当Maven客户端要求solr-core 4.0-SNAPSHOT ,即使上游有一个较新的版本,也会得到相同的版本。

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

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

您可以使用版本maven插件固定到特定版本的SNAPSHOT,只有SNAPSHOT在相应的存储库中可用时才有效。 但我建议使用存储库管理器并将SNAPSHOT放入本地存储库并改为使用它们。 还有一种方法是获得一个特定的SNAPSHOT,并为其提供内部版本,例如4.0.1-INTERNAL,并根据它提供更长的可用时间。

将快照部署到存储库服务器时,每个新部署实际上都部署为带有迭代器编号的带时间戳的版本。 如果要使用特定版本,只需使用快照的时间戳版本而不是-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>

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM