仅在部署之后,Maven更新在安装工件后才起作用

时间:2011-08-06 11:51:33

标签: maven-3

我真的不明白,我有一个多模块项目(快照),我正在使用Nexus repo manager。如果我对projectB和$mvn install进行了更改,那么projectA在构建时仍会使用旧的依赖项。

无论我是$mvn -o compile还是$mvn -U compile,它仍然依赖于类路径。

如果我部署projectB $mvn deploy,projectA仍然会获得类路径的旧依赖项 除非我去$mvn -U compile,否则在构建时会在projectA的类路径上提供新的快照projectB依赖项。这可以按预期工作。

BUT

$mvn install根本不允许我从外面使用已安装的工件版本,无论如何。我总是必须deploy并为其他人运行$mvn -U compile以获得新的依赖。

可以请任何人向我解释,为什么会这样?显然,maven installupdate应该有效,但需要deploy。怎么了?

1 个答案:

答案 0 :(得分:0)

mvn install将构建的jar安装到〜/ m2 / repository /的本地仓库。在快照方面,mvn install将旧快照替换为新快照。

您的本地回购似乎存在问题。因此,我建议从本地存储库中删除当前快照,然后重试。在最坏的情况下,删除整个〜/ .m2 repo并再试一次。

现在,您正在通过将工件上传到远程和回购(通过mvn deploy)并使用mvn -U compile再次下载来进行艰难的操作。

根据评论 - 它似乎是maven-install-plugin中的一个错误。最新版本是maven-install-plugin-2.3.1。在你的pom中明确设置插件。