编程语言
首页 > 编程语言> > java – Maven插件开发:有没有一种方法可以在pom.xml中声明时自动运行插件?

java – Maven插件开发:有没有一种方法可以在pom.xml中声明时自动运行插件?

作者:互联网

我正在开发一个新的魔力.它只有一个目标,因此似乎没有强制用户添加执行部分(如果他们不想更改默认阶段).

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

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

这足以运行插件.

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

这是我现在拥有的(如果没有执行部分,它就不起作用):

/**
 *
 * @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>

解决方法:

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

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

在我看来,对于内部开发来说,更好的替代方案是使用包含特定于站点的配置的共享父POM.

编辑:我正在寻找父POM的参考,并看到this.我不确定这是否只是一个Maven3功能,但它可能值得调查.

标签:java,maven-2,maven,maven-plugin
来源: https://codeday.me/bug/20190704/1379518.html