gpt4 book ai didi

maven - 我可以在pluginManagement 中配置多个插件执行,并在我的子POM 中进行选择吗?

转载 作者:行者123 更新时间:2023-12-03 07:40:31 24 4
gpt4 key购买 nike

我想在项目中执行 2 个常见的插件驱动任务。因为它们很常见,所以我想将它们的配置移动到共享父 POM 的 pluginMangement 部分。然而,这两个任务虽然在其他方面完全不同,但都使用相同的插件。在我的一些项目中,我只想执行 2 个任务中的 1 个(我并不总是想运行插件的所有执行)。

有没有一种方法可以在父 pom 的 pluginManagement 部分中指定插件的多个不同执行,并在我的子 pom 中选择其中一个(且只有一个)实际运行?如果我在 pluginManagement 中配置 2 个执行,则似乎两个执行都会运行。

注意:我认为这可能是也可能不是问题 Maven2 - problem with pluginManagement and parent-child relationship 的重复。 ,但由于问题将近 4 屏长(TL;DR),因此简洁的重复可能是值得的。

最佳答案

你是对的,默认情况下 Maven 将包含你配置的所有执行。这是我之前处理这种情况的方法。

<pluginManagement>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>some-maven-plugin</artifactId>
<version>1.0</version>
<executions>
<execution>
<id>first-execution</id>
<phase>none</phase>
<goals>
<goal>some-goal</goal>
</goals>
<configuration>
<!-- plugin config to share -->
</configuration>
</execution>
<execution>
<id>second-execution</id>
<phase>none</phase>
<goals>
<goal>other-goal</goal>
</goals>
<configuration>
<!-- plugin config to share -->
</configuration>
</execution>
</executions>
</plugin>
</pluginManagement>

请注意,执行绑定(bind)到none阶段。在子项中,您启用应按如下方式执行的部分:

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>some-maven-plugin</artifactId>
<executions>
<execution>
<id>first-execution</id> <!-- be sure to use ID from parent -->
<phase>prepare-package</phase> <!-- whatever phase is desired -->
</execution>
<!-- enable other executions here - or don't -->
</executions>
</plugin>

如果子进程没有显式地将执行绑定(bind)到某个阶段,它将不会运行。这允许您选择所需的执行。

关于maven - 我可以在pluginManagement 中配置多个插件执行,并在我的子POM 中进行选择吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16540808/

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