Maven依赖决议

时间:2009-06-15 11:56:46

标签: maven-2 dependencies

我有两个maven项目A和B,我正在积极研究源代码。项目A依赖于B.如果我想构建项目A,是否需要在存储库中存在B的快照(或发布)?或者将maven检查A的父目录以查看项目B是否存在(假设我的目录结构类似于:projects / A projects / B)?哪个更好的做法?感谢。

杰夫

3 个答案:

答案 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以获得更标准的构建工具。这真是一个奇怪的鸭子。