有没有办法让Maven下载依赖项的特定快照版本?我知道指定这样的依赖关系会下载最新的快照:
<dependency>
<groupId>groupid</groupId>
<artifactId>artifact-id</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
是否可以指定特定的快照版本? (例如artifact-id-1.0.0-20090610.041042-5
)如果头部快照构建已经破坏并且尚未正式发布依赖的稳定版本,这将非常有用。
答案 0 :(得分:47)
要使用依赖项的特定快照版本,应使用唯一的快照版本号安装/部署引用的工件。请参阅POM reference/Repository中的 uniqueVersion 元素。 在这种情况下,您可以像:
一样引用它...
<dependency>
<groupId>groupid</groupId>
<artifactId>artifact-id</artifactId>
<version>1.0.0-20090610.041042-5</version>
</dependency>
...
Maven存储库管理器服务器可能具有其他相关功能,例如覆盖 pom.xml 的 uniqueVersion 设置。例如,请参阅有关此功能的Artifactory User Guide(此外,您可以在此处阅读一些反对使用唯一快照版本号的参数)。
答案 1 :(得分:3)
是的,你可以。可以使用maven存储库中的任何版本。我遇到了一些问题,其中tratsnsitive依赖关系与版本混淆了。这就是mvn dependency:tree
派上用场的地方。
答案 2 :(得分:0)
使用Versions Maven插件
http://mojohaus.org/versions-maven-plugin/examples/lock-snapshots.html
和
http://mojohaus.org/versions-maven-plugin/examples/unlock-snapshots.html
答案 3 :(得分:-3)
AFAIK SNAPSHOT always refers to the latest build并且无法依赖特定版本。
要解决此问题,您可以在自己的maven存储库中重新发布要依赖的确切版本,并为其指定特定版本。