是的,这是一个真正的问题。
我想在基于Maven的多模块项目中满足以下工作流程:
模块Y可能直接或间接依赖于模块X,我需要所有受到另一个模块影响的模块以递归方式进行编译。我不希望测试运行。
在Maven中,如何在不必每次编译和安装所有内容的情况下执行此操作?
答案 0 :(得分:3)
为什么每次都必须制作和安装?我发现最简单的解决方案是mvn install
一次。然后,您可以进入单个项目并随时构建它们。如果您需要确保拾取链,只需从顶部进行构建并使用mvn -amd -pl projectname
这表示要构建一个特定项目及其依赖项。
答案 1 :(得分:1)
发展阶段
我认为你不能轻易地与maven一起做。在开发过程中,您可以跳过添加-DskipTests
的测试。
maven无法正确进行增量编译。正确的方法是使用IDE将maven项目导入IDE的项目中,然后就可以快速轻松地开发。 IntelliJ IDEA与maven的效果非常好。
制作阶段
对于发布版本,您可以在目标工件中使用显式版本。因此,在模块X中进行更改后,如果构建最终发布工件模块Y,则可以在其中添加显式依赖项。在这种情况下,X和Y之间的所有模块都将具有旧版本(但您应该假设它们将使用新的X,这始终不正确)。