我真的不明白,我有一个多模块项目(快照),我正在使用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 install
和update
应该有效,但需要deploy
。怎么了?
答案 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中明确设置插件。