2

我有一个 Maven 多模块项目,其父 POM 状态:

<modules>
  <module>ui</module>
  <module>controller</module>  <!-- Depends on ui module -->
</modules>

以下运行良好:

project-root> mvn clean package

但是,如果我尝试会出现问题:

project-root/controller> mvn clean package

该错误将ui工件报告为未解决的依赖项。

是的,我意识到这个问题之前已经被问过。但是它没有明确的答案(该实例的公认答案只是一种解决方法)。这种行为被解释为依赖解析和反应器构建之间的差异。 一篇关于 Maven 3 的帖子表明它已在该版本中得到解决。我正在使用 Maven 3.0.3 并没有看到任何缓解。 Maven 3.0.4 的发行说明不建议更改此行为。

你如何处理这样的情况?是project-root每次都进行构建的唯一方法吗?

4

1 回答 1

1

您面临的问题是您尝试从同级调用构建,在这种情况下,依赖关系解析将针对您的本地存储库完成。

您的问题有几种解决方案。第一个是去你的根目录并做一个mvn install. 之后,您应该可以转到您的控制器并执行mvn clean package. 但我建议转到您的根目录并专门构建控制器模块:

mvn -pl controller clean package

但前提是在此之前进行 mvn install 。

于 2012-05-19T10:31:48.277 回答