根据属性跳过插件的执行

时间:2016-01-07 19:58:04

标签: maven

在我的Maven构建中,我使用maven-processor-plugin生成这样的JPA元模型

<plugin>
    <groupId>org.bsc.maven</groupId>
    <artifactId>maven-processor-plugin</artifactId>
    <version>2.2.4</version>
    <executions>
        <execution>
            <id>process</id>
            <goals>
                <goal>process</goal>
            </goals>
            <phase>generate-sources</phase>
            ....
        </execution>
</plugin>

现在我想跳过基于属性的元模型生成,比如这个

$ mvn -Dspeed.up.build.from.eclipse=true

不幸的是,maven-processor-plugin并不像某些插件那样支持<skip>${speed.up.build.from.eclipse}</skip>配置代码。

我可以将我的插件放在个人资料中,然后根据我的属性激活它。但后来我需要以某种方式否定财产的价值......

所以我需要:

  • 执行插件,如果没有设置属性
  • 如果设置了属性,则跳过插件的执行

有什么好方法可以实现它吗?如果是,怎么样?

1 个答案:

答案 0 :(得分:3)

documentation判断,确实没有skip属性。

在这种情况下,可能的解决方案是使用将阶段设置为none的hack来禁用插件执行。您将定义2 profiles

然后,您将使用自定义属性作为插件配置中的阶段。

请注意,这是一个黑客攻击,因为这是一个未记录的功能。

另一种解决方案(我实际上会推荐)是提出添加该功能的拉取请求。 The code is hosted on GitHub因此您可以轻松地对其进行分叉,修补并发出拉取请求。同时,您可以使用自定义插件,当合并请求时,您可以删除自定义插件。