gpt4 book ai didi

java - Maven插件开发: is there a way to automatically run plugin when it's just declared in pom. xml?

转载 作者:搜寻专家 更新时间:2023-11-01 03:28:21 25 4
gpt4 key购买 nike

我正在开发一个新的 mojo。它只有一个目标,因此不强制用户添加 executions 部分(如果他们不想更改默认的 phase)似乎是合乎逻辑的。

这应该是可能的,因为当我添加一个非常简单的 surefire 插件描述时,maven 明白它的单一目标 test 应该运行,即:

 <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.4.3</version>
</plugin>

这足以运行插件。

如何为我的插件实现类似的小配置?

这是我现在拥有的(如果没有 executions 部分,它就无法工作):

/**
*
* @goal test
* @phase test
*/
public class MyMojoPlugin extends AbstractMojo {

... (implementation details)
}

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

<modelVersion>4.0.0</modelVersion>
<groupId>org.somegroup</groupId>
<artifactId>mymojo-maven-plugin</artifactId>
<packaging>maven-plugin</packaging>
<version>1.0-SNAPSHOT</version>

<dependencies>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-plugin-api</artifactId>
<version>2.0</version>
</dependency>

.... (other dependencies)

</dependencies>

<build>
<plugins>
... (some plugins)
</plugins>
</build>

</project>

最佳答案

“默认”生命周期绑定(bind)是在 Maven 中定义的。这在 Build Lifecycle 中有描述。文档,该文档还指出插件需要“执行”部分。

我想你可以编辑 components.xml并为您的特定站点重新编译 Maven。

在我看来,至少对于内部开发而言,更好的选择是使用包含特定于站点的配置的共享父 POM。

编辑:我正在寻找对父 POM 的引用并看到了 this .我不确定这是否是 Maven3 独有的功能,但它可能值得研究。

关于java - Maven插件开发: is there a way to automatically run plugin when it's just declared in pom. xml?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7331646/

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