我知道如何为外部存储库而不是我的本地存储库执行此操作,因为我的<repository>
中的本地存储库没有settings.xml
。
我为子项目使用快照版本,所以当我重新构建父项目时,我希望maven从我的本地存储库中获取所有子项目快照版本不仅每天一次 (这似乎是默认情况下发生的事情)但总是如此。
答案 0 :(得分:7)
如果我理解你的评论,我认为@FrVaBe可能有正确答案。当您在开发计算机上更改子项目的代码时,您可以重建快照并将其放入本地工件仓库(通过mvn install
),以便父项目可以使用它。
但是,如果您希望您的父项目构建引入团队成员所做的更改并且每天更频繁地发布到公司远程存储库,请继续阅读。
Here概述了Maven中央(和亲属),远程存储库(例如Nexus或Artifactory的公司实例)和您的本地存储库如何协同工作。如果您始终希望在每个构建版本上下载最新版本的快照,请转到settings.xml
文件,找到包含所需快照的<snapshot>
存储库,并将<updatePolicy>
值更改为“始终”。我个人很少这样做,我只想在我的mvn
命令行中添加'-U'选项,以确保我从远程仓库获得最新版本的快照。
答案 1 :(得分:3)
本地存储库没有更新政策!
本地存储库只是一堆文件。当您install
到本地存储库时,本地项目已经直接引用了工件。除了可能需要刷新IDE以拾取新文件之外,不需要执行任何更新。
通过这种方式,您可以整天构建本地快照,不会出现版本问题,不需要更新,也不会留下旧的工件。如果您是Maven的新手,并且仍然掌握所有这些存储库及其花哨的更新机制,那么很好,干净但不那么明显。
答案 2 :(得分:2)
我觉得你错过了一些东西。 Maven将始终从您当地的存储库中获取最新/最新的SNAPSHOT。但是在项目设置(Project Inheritance)中,如果你改变了某些东西,你需要自己构建子项目。
子项目的自动构建仅发生在Project Aggregation布局上。
差异在文档的Project Inheritance vs Project Aggregation部分进行了解释。