gpt4 book ai didi

maven - 基于属性跳过插件的执行

转载 作者:行者123 更新时间:2023-12-04 19:49:57 24 4
gpt4 key购买 nike

在我的 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>配置标签就像一些插件一样。

我可以将我的插件放在一个配置文件中,然后根据我的属性激活它。但后来我需要以某种方式否定属性(property)的值(value)......

所以我需要:
  • 执行插件,如果没有设置属性
  • 如果设置了属性,则跳过插件的执行

  • 有什么好的方法可以存档吗?如果是,如何?

    最佳答案

    documentation来看,确实没有skip属性(property)。

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

  • 一激活by the presence of the property speed.up.build.from.eclipse这将设置自定义属性 maven-annotation-plugin.phasenone ;
  • 一激活by the absence of that property这会将这个自定义属性设置为您希望插件运行的实际阶段。

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

    请注意,这是一个 hack,因为这是一个未记录的功能。

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

    关于maven - 基于属性跳过插件的执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34664050/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com