3

是的,这是一个真正的问题。

我想在基于 Maven 的多模块项目中满足以下工作流程:

  • 在模块 X 中进行更改
  • 在模块 Y 中运行 Java 应用程序

模块 Y 可能直接或间接依赖于模块 X,我需要递归地编译受另一个更改影响的所有模块。我不想运行测试。

在 Maven 中,我如何在不必每次都编译和安装所有内容的情况下做到这一点?

4

2 回答 2

3

为什么每次都要制作和安装?我发现的最简单的解决方案是mvn install一次。然后,您可以进入各个项目并随时构建它们。如果您需要确保链条被拾起,只需从顶部构建并使用mvn -amd -pl projectname

这表示要构建一个特定的项目及其依赖项。

于 2012-06-19T12:25:10.100 回答
1

发展阶段

我认为您不能仅使用 Maven 轻松做到这一点。但是,在开发过程中,您可以跳过添加-DskipTests.

maven 无法正确进行增量编译。正确的做法是使用 IDE,它将 maven 项目导入 IDE 的项目中,然后您可以快速轻松地进行开发。IntelliJ IDEA 与 maven 配合得很好。

生产阶段

对于发布版本,您可以在目标工件中使用显式版本。因此,在模块 X 发生更改后,如果您构建最终发布工件模块 Y,您可以在其中添加显式依赖项。在这种情况下,X 和 Y 之间的所有模块都将具有旧版本(但您应该假设它们将与新的 X 一起使用,这总是不正确的)。

于 2012-06-19T12:22:42.230 回答