1

我使用一个多模块构建文件来触发一个相当复杂的 java 项目的构建。现在我想创建 Eclipse 项目文件——但不是针对所有模块。是否可以在pom 上定义它应该忽略eclipse:eclipse目标?

我调用的多模块 pom 的模块定义mvn eclipse:eclipse如下所示:

<modules>
  <module>../project1/generate/pom.xml</module>
  <module>../project1/pom.xml</module>
  <module>../project2/generate/pom.xml</module>
  <module>../project2/pom.xml</module>
  <!-- and many more projects with or without generate sub modules -->
</modules>

当然 pom 不仅是创建 eclipse 项目所需要的,所以我不能只删除导致该目标出现问题的模块。

询问的原因:eclipse:eclipse生成 模块上执行将更改清单文件中的某些属性,从而导致下一次构建中断。而且我厌倦了一直手动纠正它们;)

4

2 回答 2

1

您可以使用Maven 高级反应器选项(从 Maven 2.1 开始):

例如,仅针对 project1 和 project2:

mvn --projects project1, project2 eclipse:eclipse

以 project1 及其所有依赖项为目标:

mvn --projects project1 --also-make eclipse:eclipse

这为反应多模块项目提供了一种标准化的方式,并且不需要在 pom.xml 中进行修改。

于 2012-10-25T20:46:31.177 回答
1

您可以为此使用Maven 配置文件

删除您定义的模块并添加如下内容:

<profiles>
    <profile>
        <id>full</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <modules>
            <module>../project1/generate/pom.xml</module>
            <module>../project1/pom.xml</module>
            <module>../project2/generate/pom.xml</module>
            <module>../project2/pom.xml</module>
        </modules>
    </profile>
    <profile>
        <id>eclipse</id>
        <modules>
            <module>../project1/pom.xml</module>
            <module>../project2/pom.xml</module>
        </modules>
    </profile>
</profiles>

然后当你想生成eclipse设置时:

mvn -Peclipse eclipse:eclipse
于 2012-10-25T09:51:47.447 回答