我有两个maven项目A和B,我正在积极研究源代码。项目A依赖于B.如果我想构建项目A,是否需要在存储库中存在B的快照(或发布)?或者将maven检查A的父目录以查看项目B是否存在(假设我的目录结构类似于:projects / A projects / B)?哪个更好的做法?感谢。
杰夫
答案 0 :(得分:4)
除了您指定的存储库层次结构外,Maven不会查找任何位置,默认情况下,这是您的.m2目录(本地存储库)和Maven Central存储库。
所以是的,某个版本的B必须存在于存储库中。
你也可以调查项目模块,你有(例如)projects / pom.xml,当它构建时,它也将根据它们的相互依赖性以正确的顺序构建它的子A和B - 但是你不应该我认为这不是你所描述的问题的解决方案,而不需要太多考虑。
答案 1 :(得分:0)
要了解Dependency Mechanism如何在maven中工作以及如何配置父子/子模块/子项目关系,请阅读this
答案 2 :(得分:0)
Maven是一个奇怪的构建工具,因为它会查找maven存储库/ artifactory for jar。只要有人构建了ProjectB并将其安装在工件中,或者只要您构建了ProjectB(使用安装),ProjectA就可以使用它。
这也假设您已在ProjectA的pom文件中正确设置了依赖性。
我在一个项目中使用了Maven,我将回到ant以获得更标准的构建工具。这真是一个奇怪的鸭子。