You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Maven Plugin插件descriptor goal使用注解无法生成Mojo文档

不用废弃@goal标签生成Maven插件描述符的解决办法

1. 确认Maven Plugin Plugin版本

老版本的maven-plugin-plugin对注解式Mojo支持不完善,直接使用3.6.0及以上版本(比如3.6.2),在pom.xml中明确指定插件版本:

<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-plugin-plugin</artifactId>
      <version>3.6.2</version>
      <executions>
        <execution>
          <id>default-descriptor</id>
          <goals>
            <goal>descriptor</goal>
          </goals>
        </execution>
      </executions>
    </plugin>
  </plugins>
</build>

2. 检查@Mojo注解的正确使用

确保你的Mojo类满足以下要求:

  • 必须继承AbstractMojo(或实现Mojo接口,继承抽象类更简便)
  • @Mojo注解的name属性必须设置,这对应插件的goal名称
  • 类为public权限,且包含无参构造函数

示例正确的Mojo类:

import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.MojoFailureException;
import org.apache.maven.plugins.annotations.Mojo;

@Mojo(name = "rewrite")
public class RewriteMojo extends AbstractMojo {
    @Override
    public void execute() throws MojoExecutionException, MojoFailureException {
        getLog().info("Running rewrite goal");
    }
}

3. 确认依赖配置正确

引入匹配版本的maven-plugin-api和注解依赖:

<dependencies>
  <dependency>
    <groupId>org.apache.maven</groupId>
    <artifactId>maven-plugin-api</artifactId>
    <version>3.8.6</version>
    <scope>provided</scope>
  </dependency>
  <dependency>
    <groupId>org.apache.maven.plugin-tools</groupId>
    <artifactId>maven-plugin-annotations</artifactId>
    <version>3.6.2</version>
    <scope>provided</scope>
  </dependency>
</dependencies>

4. 清理并重新构建

执行命令清理旧构建文件,重新生成描述符:

mvn clean plugin:descriptor

5. 检查插件执行阶段配置

如果插件绑定了特定执行阶段,确保execution配置中包含descriptor目标的执行,避免遗漏。


内容的提问来源于stack exchange,提问作者Mike Solomon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 06:44:56