我是Maven的新手,对于构建多个Maven项目有疑问。
我们有两个Maven项目,项目A和项目B.
项目A取决于项目B生成的人工制品。
当对项目A或B的更改检入SVN时,我们的本地Hudson服务器会构建修改后的项目(以及任何相关项目),并将文物上传到我们的本地Nexus存储库。
现在,考虑两位开发人员。
开发人员1仅攻击项目A,当开发人员1在本地构建项目A时,Maven从我们的Nexus服务器获取最新的项目B快照假象。
开发人员2同时攻击项目A和项目B.当Developer 2在本地构建项目A时,我们希望maven使用任何本地更改来构建项目B并使用生成的artefact来构建项目A.我们如何使用项目B的本地版本来设置Maven而不是从中获取artefact关系?这是Maven的标准使用模式吗?
答案 0 :(得分:3)
我们如何设置Maven使用本地版本的项目B来构建而不是从Nexus获取人工制品?
您可以为每个repository的快照工件设置updatePolicy
。实际上,Maven每天只通过默认检查一次SNAPSHOT更新。因此,如果您在本地构建B版本,即使将新的SNAPSHOT部署到您的Nexus,您也应该可以使用它来构建A一段时间。如果这不符合您的需求,您可以更改此政策。您也可以离线构建(使用-o
选项)。
PS:AFAIK,Maven 3.x默认禁用自动更新,您必须明确要求更新(使用-U
选项)。