gpt4 book ai didi

java - 将 mojo 添加到另一个 Maven 插件定义的自定义生命周期

转载 作者:行者123 更新时间:2023-12-01 16:08:21 28 4
gpt4 key购买 nike

我正在使用一个 Maven 插件,它为我的项目定义了自定义打包类型和生命周期。我们将此包装称为“foo”,由“foo-plugin”定义。我无法控制该插件,但我想在我的插件中扩展它的生命周期定义。

我正在编写另一个插件,我们将其称为“bar-plugin”。我希望在带有“foo”包装的项目的流程源阶段调用我的插件的某个目标。在任何其他情况下都不会。我已经定义了一个在流程源阶段执行的 mojo,但这使得它在任何项目的流程源阶段执行,而不仅仅是那些打包“foo”的项目。

/**
* @goal bar
* @phase process-sources
*/
public class BarMojo extends AbstractMojo

我还尝试使用自定义生命周期定义来扩展现有生命周期,如下所示:

<component-set>
<components>
<component>
<role>org.apache.maven.lifecycle.mapping.LifecycleMapping</role>
<role-hint>foo</role-hint>
<implementation>org.apache.maven.lifecycle.mapping.DefaultLifecycleMapping</implementation>
<configuration>
<phases>
<process-sources>${groupId}:${artifactId}:${version}:bar</process-sources>
</phases>
</configuration>
</component>
</components>
</component-set>

即使使用<extensions>,这似乎也被完全忽略了。 pom 中的元素设置为 true。是否有可能使用另一个插件来扩展一个插件定义的生命周期,如果可以,我做错了什么?

编辑:maven项目结构如下:项目-名称(打包)
mycompany-parent (pom)
- someprojecttype-parent (pom)
- - 项目-1 (foo)
- - 项目-2 (foo)

我想将插件添加到 someprojecttype-parent 中,该项目的打包设置为 pom.xml。这会导致在构建父项目时执行 bar 目标。我只想在构建project-1和project-2时执行bar目标。

最佳答案

从最后一点来看,听起来你需要将插件放入其中

<build>
<pluginManagement>
<plugins>

不仅仅是

<build>
<plugins>

这应该限制子项目的执行

关于java - 将 mojo 添加到另一个 Maven 插件定义的自定义生命周期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2132470/

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