Maven传递依赖关系

问题描述:

我有3个maven项目:第一个 - “A”带包装罐,第二个 - “B”包装罐,第三个 - “C”包装罐。 “C”依赖于“B”作为编译时间依赖性,“B”依赖于“A”也作为编译时间依赖性。项目“C”也使用“A”类。所以我有传递依赖C - > B - >答:但是当我尝试构建这些项目时,编译项目C时maven失败并显示编译错误:它无法从“C”中使用的项目“A”中找到类。Maven传递依赖关系

我认为maven可以解决传递依赖。为什么我会得到这样的错误?

+0

这应该很好,所以有些东西是不正确的。 B编译好吗?父pom是多个pom,并将A,B和C定义为模块?你在C中使用A的测试类吗? – Raghuram 2012-08-13 12:16:33

Maven的解决传递依赖,但不会(通常)自动构建它们。你可以得到行家做你想要的通过与项目列表一起供应--also-make/-am标志:

mvn -am -pl C clean install 

这是假设A,B,C是一个共享父的所有模块,并且你会运行命令以上在父目录中。

+0

当我在项目C上运行'mvn clean install'maven日志处理项目的顺序(A,B,C)时,在控制台中我看到成功处理的A和B项目;所以在项目C开始处理之前,项目工件已经存在于存储库中。 – maks 2012-08-10 23:45:01

+0

错字,我运行'mvn clean install'在那3个ptojects – maks 2012-08-11 10:42:17

+0

@maks的父项目上,您需要发布更多关于精确错误消息的详细信息。您的场景是Maven的正常情况;它应该工作。也许版本不一致?如果maven按照正确的顺序构建它们,那么在你的POM中会出现其他的错误。 – 2012-08-13 16:22:59