java - maven - 在多模块构建中禁用模块的专用目标

标签 java eclipse maven build

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

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

<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 项目,因此我不能仅仅删除那些导致该目标出现问题的模块。

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

最佳答案

您可以使用Maven Profiles为此。

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

<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

关于java - maven - 在多模块构建中禁用模块的专用目标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13064624/

相关文章:

java - 关于自定义JSP标签库的问题

java - 如何从 JMX 获取线程优先级?

java - LibGDX:Eclipse导入Gradle 'CreateProcess error = 5'

即使使用 -lwininet 链接器标志,C++ wininet 也 undefined reference

java - 使用 Maven 依赖项的轻量级方法?

Android - 使用 jarsigner 签署应用程序

java - 无法通过命令行将映射类型的变量传递给 Maven 目标

java - Dropwizard 停止维护了吗?

eclipse - 如何转到Eclipse中的特定文件夹?

maven - Sonatype Nexus : Unexpected value of <latest> tag in "maven-metadata.xml"