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

VSCode使用Maven插件上传中央仓库时配置的相关插件未执行

问题原因与解决方案

根因分析

  • 源码、Javadoc插件未绑定生命周期阶段:你当前配置的maven-source-plugin、maven-javadoc-plugin仅指定了执行目标,没有绑定到具体的Maven生命周期阶段,因此不会随默认生命周期自动触发执行。
  • 插件存放位置错误:如果上述三类插件(源码、Javadoc、GPG)是放在<build><pluginManagement><plugins>节点下,仅会作为父级配置对子模块生效,不会在当前模块直接执行。
  • GPG环境配置缺失:本地未安装GPG工具、未生成密钥、未配置密钥密码,都会导致签名步骤静默失败,不会中断构建也不会生成签名文件。
  • VSCode Maven执行参数/阶段不全:VSCode Maven插件默认的生命周期执行可能自带跳过参数(如maven.javadoc.skip=true),或者你执行的阶段未到verify/deploy,导致插件未触发。

修复步骤

  1. 补全插件生命周期绑定
    给源码、Javadoc插件的执行配置补充<phase>package</phase>,让其在打包阶段自动执行,修正后的配置示例:
<!-- 源码插件 -->
<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-source-plugin</artifactId>
  <version>2.2.1</version>
  <executions>
    <execution>
      <id>attach-sources</id>
      <phase>package</phase>
      <goals>
        <goal>jar-no-fork</goal>
      </goals>
    </execution>
  </executions>
</plugin>

<!-- Javadoc插件 -->
<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-javadoc-plugin</artifactId>
  <version>2.9.1</version>
  <executions>
    <execution>
      <id>attach-javadocs</id>
      <phase>package</phase>
      <goals>
        <goal>jar</goal>
      </goals>
    </execution>
  </executions>
</plugin>
  1. 调整插件存放位置
    确认maven-source-plugin、maven-javadoc-plugin、maven-gpg-plugin三个插件直接放在<build><plugins>节点下,而非pluginManagement子节点内。
  2. 完善GPG与Maven配置
  • 本地安装GnuPG工具,在终端执行gpg --version验证可正常调用
  • 生成GPG密钥并将公钥上传到Maven要求的密钥服务器
  • 在用户目录.m2下的settings.xml中补充配置:
<servers>
  <server>
    <id>ossrh</id>
    <username>你的OSSRH账号</username>
    <password>你的OSSRH密码</password>
  </server>
</servers>
<properties>
  <gpg.passphrase>你的GPG密钥密码</gpg.passphrase>
</properties>
  1. 验证执行
    在VSCode终端手动执行命令测试,避免插件默认参数影响:
  • 本地验证是否生成源码包、Javadoc包和签名文件:mvn clean verify,执行后查看target目录下是否存在*-sources.jar、*-javadoc.jar以及对应jar包的.asc签名文件
  • 执行完整部署流程:mvn clean deploy
  1. 检查跳过参数
    确认VSCode Maven插件的全局配置中没有设置maven.javadoc.skip=true、maven.source.skip=true、gpg.skip=true这类跳过参数,否则对应插件会直接不执行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 17:09:00