如何在maven多模块项目中只运行父pom.xml

时间:2011-01-27 00:44:00

标签: module maven profile

我有maven多模块项目。在父级别,我有一些java文件。在父pom.xml中,在包阶段我做了一些事情。

通常,当我在父级别运行mvn包时,将运行父pom的包阶段,并且所有模块也将被打包。

我正在寻找一种允许我这样做的方法(当我运行mvn包时):

  • 允许我只运行paren pom.xml(包阶段的脚本),而不是模块。这是第一要务。
  • 允许我运行paren pom.xml和一些特定的模块(比如模块1,模块2但不是模块3,模块4)。

我可以针对这些问题使用个人资料吗?

感谢。

3 个答案:

答案 0 :(得分:8)

虽然我同意你可能没有最佳的项目结构,但答案是Maven 2.2.1有一个选项“--non-recursive”,它满足你的第一个要求:

-N,--non-recursive    Do not recurse into sub-projects

这样的事情:

mvn --non-recursive clean compile 

答案 1 :(得分:1)

为什么你想在顶层有java代码?在我看来,这不是一个好主意。将您的代码放在子项目中,让顶级项目负责保存整个项目的一般信息和配置。

如果您现在在顶级项目中有一些基础库代码,则可以将其放在子项目中并设置项目之间的依赖关系。

答案 2 :(得分:0)

查看Maven parent pom vs modules pom

您的问题的性质表明您的项目结构可能不是最佳的。