【问题标题】:how to run only parent pom.xml in maven multi-module project如何在 Maven 多模块项目中仅运行父 pom.xml
【发布时间】:2011-06-16 06:15:45
【问题描述】:

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

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

我正在寻找一种允许我执行这些操作的方法(当我运行 mvn 包时):

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

我可以使用配置文件来解决这些问题吗?

谢谢。

【问题讨论】:

    标签: module maven profile


    【解决方案1】:

    看看Maven parent pom vs modules pom

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

    【讨论】:

      【解决方案2】:

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

      如果你现在在顶层项目中有一些基础库代码,你可以把它放在一个子项目中,并设置项目之间的依赖关系。

      【讨论】:

      • 我有几个多模块项目,其中站点文档位于项目根目录的 /src/site/markdown 中(与父 pom 级别相同)。能够运行“mvn site -N”意味着我可以迭代渲染的文档,而无需构建每个子模块。
      【解决方案3】:

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

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

      所以是这样的:

      mvn --non-recursive clean compile 
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-03-01
        • 2014-03-28
        • 1970-01-01
        • 1970-01-01
        • 2015-05-22
        • 1970-01-01
        相关资源
        最近更新 更多