如何强制maven下载快照
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何强制maven下载快照相关的知识,希望对你有一定的参考价值。
我有一个maven项目(myApp),取决于快照版本中的另一个maven项目。喜欢:
<dependency>
<groupId>org.group.dep</groupId>
<artifactId>arty</artifactId>
<version>12.1.4-SNAPSHOT</version>
</dependency>
但是在“arty”获得更新而不更改版本后我遇到了问题(我知道这将是最干净的解决方案)。我构建myApp本地并且仍然是旧版本的“arty”依赖项。
我验证了为我(和大学)工作的拖车选项:
1)手动清理本地存储库:导航到我的.m2/repo/org/group/dep/arty
并删除里面的所有文件夹。在重建myApp local之后,它运行良好 - arty从artifactory.company.com再次下载了更新的内容。
2)本地构建arty包,以便在本地存储库中更新。重建myApp本地后它运行正常。
但我在詹金斯遇到了类似的问题:
我得到了詹金斯的工作,只是在org.group.myApp
之前建造没有建筑的org.group.dep.arty
。它失败了因为“艺术”的缺失变化。
我现在可以做些什么来解决我的问题?
我不能依赖于首先构建org.group.dep.arty
,因为我无法确定Jenkins是否可以使用相同的本地存储库在同一主机上运行这两个作业(我不想更改它)。不知怎的,我在Jenkins节点上手动清除了存储库中的org.group.dep.arty
并运行了myApp-job(以某种方式不下载软件包)后,myApp-Jobs失败了。
我终于找到了mvn -u
但是当我尝试这个时我也很失望。我在jenkins上尝试了不同的maven版本并得到了相同的结果。有没有办法强制更新快照版本?
这个“另一个项目”是同一个多模块项目的一部分吗?如果是这样,您可以使用--also-make
选项构建项目,以便maven可以有效地重建您的模块及其所有依赖项
如果它是一个完全不同的项目,请使用mvn -U
强制下载项目的所有快照依赖项。
如果存在一个具体依赖的特定问题,请考虑使用mvn dependency:get
。 get
的maven-dependency-plugin
目标从远程存储库下载一个特定工件
Here is a link to the plugin documentation
重新下载-SNAPSHOT
的最简单的解决方案是使用命令行选项:-U
或长选项--update-snapshots
此外,您的项目听起来像需要多模块构建,以防止此类问题。或者您可能需要相互依赖地定义这些作业(如果在Jenkins中更新了SNAPSHOT,则可以选择构建)。
以上是关于如何强制maven下载快照的主要内容,如果未能解决你的问题,请参考以下文章