maven自定义插件配置

maven自定义插件配置,maven,Maven,我有一个maven多模块项目,我希望我可以使用配置文件根据POM属性定制两种情况下的插件配置,但事实证明,配置文件只能由外部属性激活,而不能由POM属性激活,所以现在我正在寻找另一种方法来拥有不同的项目配置,我想想点办法。这是我的设置 我有一个三层树:一个根父pomx,有许多子模块a,B,C。。。每个模块都有2个子模块1和2(即A1、A2、B1、B2等) 我需要做的是为所有类型1的模块定制一个叶模块的配置,为所有类型2的模块定制另一个叶模块的配置。我试图避免让所有1共享一个公共父级,而让所有2共

我有一个maven多模块项目,我希望我可以使用配置文件根据POM属性定制两种情况下的插件配置,但事实证明,配置文件只能由外部属性激活,而不能由POM属性激活,所以现在我正在寻找另一种方法来拥有不同的项目配置,我想想点办法。这是我的设置

我有一个三层树:一个根父pomx,有许多子模块a,B,C。。。每个模块都有2个子模块1和2(即A1、A2、B1、B2等)

我需要做的是为所有类型1的模块定制一个叶模块的配置,为所有类型2的模块定制另一个叶模块的配置。我试图避免让所有1共享一个公共父级,而让所有2共享另一个(不同的)公共父级,因为1和2已经从各自的父级(示例a或B)共享了一些数据。如果没有其他方法,我将把所有公共数据从A向下推到A1和A2(不理想,干燥原则),并使所有1从公共1父级继承,但我试图避免这种情况。正如我所说,我尝试在树的叶子中设置一个属性,该属性指定它是1还是2,然后将两个不同的配置文件放在祖父母POM X中,并根据该属性激活配置文件。这不管用


还有其他建议吗?

我相信你可以通过

例如,在您的家长POM中,您有如下内容:

<pluginManagement>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-surefire-plugin</artifactId>
      <version>2.5</version>
      <configuration>
         <systemPropertyVariables>
              <vendor.license.file>../licenses/vendor.lic</vendor.license.file>
         </systemPropertyVariables>
      </configuration>
    </plugin>
</pluginManagement>

org.apache.maven.plugins

您的解决方案不允许有两种不同的配置,这就是我需要的:if(类型1){use config 1}else if(类型2){use config 2}“type 1”和“type 2”是否有不同的父POM?此外,您是否可以基于属性以外的内容激活您的个人资料,即是否存在文件?你可以在每个子模块中创建一个配置文件并使其“默认激活”吗?现在他们有一个共同的父模块,就像我在OP中说的,有A1,A2,所以他们共享一个父模块a,B1,B2共享一个父模块B。我提到的选项是让A1和B1共享一个父模块common1,而A2 B2共享一个父模块common2。但是我在A和B中有共同的信息,这些信息需要在A1和A2中被按下并复制,请考虑用一个图解说明你的模块布局并指定你所用的插件——必要时用POM.XML片段来修改这个问题。