如何为maven插件定义默认mojo

Jer*_*VDL 10 mojo maven-plugin maven

我写了一个插件,在target/generated-sources /中生成一个文件.这个插件只有一个mojo.这个mojo用以下声明:

/**
 * @goal convertsql
 * @phase generate-sources
 * @requiresProject
 */
public class ConverterMojo extends AbstractMojo { 
Run Code Online (Sandbox Code Playgroud)

在项目中,我想使用插件,但如果我没有指定执行标记,它就不起作用:

<executions>
    <execution>
        <id>convert</id>
        <goals><goal>convertsql</goal></goals>
        <phase>generate-sources</phase>
    </execution>
</executions>
Run Code Online (Sandbox Code Playgroud)

我想只配置这样的插件:

<plugin>
    <groupId>com.my.plugins</groupId>
    <artifactId>sqlconverter</artifactId>
    <version>1.0-SNAPSHOT</version>
    <configuration>
        <sourceFile>src/main/resources/sql/schema_oracle.sql</sourceFile>
    </configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)

是否可以为我的插件指定默认的mojo?默认目标和阶段在mojo中定义...我的意思是,当使用jar插件时,我不必告诉我想要执行的目标,在哪个阶段...它是自动的.

谢谢!

Sea*_*oyd 1

您需要将META-INF/plexus/components.xml文件添加到插件并<extensions>true</extensions>在插件块中设置。

11.6.3。覆盖Maven 书中的默认生命周期以供参考