具有模块的项目中的Maven依赖项解析

时间:2010-11-18 19:49:29

标签: install maven

我的maven项目被摧毁为:

project
  moduleA
  moduleB
  moduleC

moduleB和moduleC依赖于moduleA。如果我执行'mvn install'命令maven在我的本地存储库中安装moduleA和moduleB之后maven尝试安装modeleC但没有成功,首先它尝试在所有已知的maven远程存储库中找到工件moduleA,之后,我'我得到一个消息,表明moduleA artefact缺失了。它如此芥末,因为有时它工作正常,有时不工作。由于这个问题,我浪费了很多时间。

工件moduleA和moduleB在我的本地存储库中。

我在Windows 7专业版的64Bit机器上使用maven 2.2.1。

有谁知道问题是什么?

谢谢,

凯文

1 个答案:

答案 0 :(得分:0)

如果使用mvn install,该命令会将工件放入本地存储库。通常位于.m2 / repository下的主目录中,除非您指定了不同的名称。如果moduleC正在尝试构建(使用mvn install)并且依赖于moduleA,那么moduleA应该在moduleC时从本地存储库中提取。如果moduleC远程查找moduleA,那么moduleA从未安装到本地存储库中。

检查pom文件中的moduleC。确保moduleC的moduleA的pom.xml中的依赖项信息与moduleA的pom.xml中指定的groupId,artifactId和version匹配。如果匹配,请确保moduleA真正生成工件。它应该位于moduleA下的目标目录中。如果moduleA不是jar,请确保在moduleA的pom.xml中列出了type属性,并且moduleC的pom.xml具有为依赖项列出的类型。

如果上述内容无法达到一致的解决方案,您可能需要编辑问题,添加一些pom.xml详细信息。