我如何使用Maven作为一个理智的构建系统?

时间:2012-06-19 12:03:14

标签: java maven

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

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

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

模块Y可能直接或间接依赖于模块X,我需要所有受到另一个模块影响的模块以递归方式进行编译。我不希望测试运行。

在Maven中,如何在不必每次编译和安装所有内容的情况下执行此操作?

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:1)

发展阶段

我认为你不能轻易地与maven一起做。在开发过程中,您可以跳过添加-DskipTests的测试。

maven无法正确进行增量编译。正确的方法是使用IDE将maven项目导入IDE的项目中,然后就可以快速轻松地开发。 IntelliJ IDEA与maven的效果非常好。

制作阶段

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