首页 文章

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

提问于
浏览
6

我在Nexus存储库管理器中托管了Maven存储库 . 工件是版本 4.0-SNAPSHOT 并且每天更新,定期删除旧工件 .

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

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

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

2 回答

  • 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>
    

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

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

  • 3

    您可以使用versions maven plugin固定到特定版本的SNAPSHOT,只有SNAPSHOT在相应的存储库中可用时才有效 . 但我建议使用存储库管理器并获得SNAPSHOT 's into a local repository and work with them instead. What'也可能是获得一个特定的SNAPSHOT并从内部发布,例如4.0.1-INTERNAL,并根据它提供更长的可用时间 .

相关问题