我使用多模块构建文件来触发构建相当复杂的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项目所需要的,因此我不能只删除导致该目标出现问题的模块。
在生成模块上执行询问:eclipse:eclipse
的原因将更改清单文件中的某些属性,导致下一个构建中断。而且我已经厌倦了一直手动纠正它们;)
答案 0 :(得分:1)
您可以使用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
答案 1 :(得分:1)
您可以使用Maven Advanced Reactor Options(自Maven 2.1起):
例如,仅定位project1和project2:
mvn --projects project1, project2 eclipse:eclipse
定位project1及其所有依赖项:
mvn --projects project1 --also-make eclipse:eclipse
这提供了一种反应多重项目的标准化方法,不需要在pom.xml中进行修改。