【问题标题】:How do you peg versions of Maven artifacts in the Nexus repository manager?您如何在 Nexus 存储库管理器中挂钩 Maven 工件的版本?
【发布时间】:2012-05-03 07:04:20
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: java maven nexus


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-08-19
        • 2018-09-03
        • 2010-10-17
        • 2012-10-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-06-24
        相关资源
        最近更新 更多