【发布时间】:2018-11-21 08:58:51
【问题描述】:
在我们的项目中,Nexus 用作 Jar 存储库,我们在 settings.xml 中有以下条目。
<mirror>
<!--This sends everything else to /public -->
<id>nexus</id>
<mirrorOf>*</mirrorOf>
<url>http://*.*.*.*:7003/nexus/content/groups/public</url>
</mirror>
每当在 nexus 中加载新 jar 时,它都会根据 pom.xml 中的条目上传到路径中。
<dependency>
<groupId>com.pqr.xyz.abc</groupId>
<artifactId>xyz</artifactId>
<version>2.2.0.0.4.1</version> OR <version>LATEST<version>
</dependency>
所以,如果每次都将 jar 上传到 nexus 中并带有新版本,那么当我们为我们的项目进行 maven 更新时,它就会被选中,该项目具有上述版本的条目(特定版本或最新。
但是,如果我们用更新的 jar 更新 nexus 中的相同版本文件夹,那么 maven update 不会选择最新的 jar,即使我们也强制更新,它也会将旧 jar 保留在 .m2 存储库中。
所以我们认为如果 jar 被替换在 nexus 的同一个文件夹中,那么如果该文件夹已经存在于 .m2 存储库中,它就不会被更新?
有没有办法每次都获取最新的 jar,即使同一个文件夹通过 maven update 在 nexus 中更新?
【问题讨论】:
-
您使用的是哪个版本的 Maven?在这里要明确一点,您实际上是每次都上传新版本号,还是试图覆盖现有版本?
-
使用“maven force update”,添加标志 -U 。见stackoverflow.com/questions/4701532/force-maven-update
-
@Tim 我正在使用 Apache Maven 3.1.1。如果我每次都上传新版本,当我进行 maven 更新时它工作正常,它会选择新版本。但是,当我在 nexus 中覆盖相同版本的 jar 时,它不会被选中。
-
@Daniele 我也已经尝试过强制 maven 更新,但没有成功。旧版本的 jar 仍然存在于 .m2 文件夹中,其中 jar 在 nexus 中被覆盖,
-
那么我认为问题出在您的 Nexus 配置上。我敢打赌你的覆盖被拒绝了。