【问题标题】:Maven specific version of a snapshot dependency快照依赖项的 Maven 特定版本
【发布时间】:2009-09-02 16:05:02
【问题描述】:

有没有办法让 Maven 下载依赖项的特定快照版本?我知道像这样指定依赖项将下载可用的最新快照:

<dependency>
<groupId>groupid</groupId>
<artifactId>artifact-id</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>

是否可以指定特定的快照版本? (例如artifact-id-1.0.0-20090610.041042-5)如果头部快照构建有问题并且依赖的稳定版本尚未正式发布,这将很有用。

【问题讨论】:

  • 当你遇到错误时,你需要这种东西,但作为一般做法应该避免

标签: maven-2


【解决方案1】:

要使用依赖项的特定快照版本,应使用唯一的快照版本号安装/部署引用的工件。请参阅POM reference/Repository 中的 uniqueVersion 元素。 在这种情况下,您可以像这样引用它:

...
<dependency>
<groupId>groupid</groupId>
<artifactId>artifact-id</artifactId>
<version>1.0.0-20090610.041042-5</version>
</dependency>
...

Maven 存储库管理器服务器可能具有其他相关功能,例如覆盖 pom.xmluniqueVersion 设置。例如,请参阅 Artifactory User Guide 关于此功能(此外,您可以在此处阅读一些反对使用唯一快照版本号的论点)。

【讨论】:

    【解决方案2】:

    是的,你可以。可以使用 maven 存储库中的任何版本。我遇到了一些问题,其中过渡依赖项与版本混淆。这就是mvn dependency:tree 派上用场的地方。

    【讨论】:

    • OP 询问具体的快照版本,而不是已发布的发布版本。
    【解决方案3】:
    【解决方案4】:

    AFAIK SNAPSHOT always refers to the latest build 并且无法依赖特定版本。

    要解决此问题,您可以在自己的 maven 存储库中重新发布您想要依赖的确切版本,并为其分配特定版本。

    【讨论】:

    • 您对 SNAPSHOT 后缀行为是正确的,但这不是 OP 所要求的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-02-16
    • 1970-01-01
    • 2013-03-04
    • 2015-12-22
    • 1970-01-01
    • 1970-01-01
    • 2016-09-18
    相关资源
    最近更新 更多