您可以尝试使用profiles
. 它们允许为特定场景定制特定构建的能力。
您可以在父 pom 中定义多个配置文件,每个配置文件都包含自己的 ant<plugin>
部分。每个配置文件也将有activation
部分。然后在您的子模块中,您将让他们激活适当的配置文件。
我将尝试使用一些 sudo 代码举一个例子:
家长会
<profile>
<id>adf-project</id>
<build>
<plugins>
<plugin>
<!-- adf specific ant plugin config -->
</plugin>
</plugins>
</build>
<activation>
<property>
<name>adfBuild</name>
<value>true</value>
</property>
</activation>
</profile>
<profile>
<id>soa-project</id>
<build>
<plugins>
<plugin>
<!-- soa ant plugin specific config -->
</plugin>
</plugins>
</build>
<activation>
<property>
<name>soaBuild</name>
<value>true</value>
</property>
</activation>
</profile>
然后在您的 soa 模块 pom 中,您将拥有以下内容:
<project ...>
<properties>
<soaBuild>true</soaBuild>
</properties>
</project>
这将自动激活该配置文件并使用正确的 ant 插件配置。
另一种选择是将插件定义为正常但具有多个executions
(一个执行用于 soa,一个用于 adf),然后在子 poms 中用 a phase
of覆盖您不想none
运行的那些执行的每个执行。应该注意的是,不推荐使用后一种方法。有关更多详细信息,请参见我的答案。