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

Git Bash Mingw64环境下使用maven-gpg-plugin签名出现gpg连接agent错误

Maven GPG 插件MinGW64环境签名报错解决方案

错误根源

该报错是Git Bash自带的GnuPG与Windows环境路径兼容、gpg-agent异常未启动、插件版本过旧三类问题共同导致的,按以下步骤依次排查即可解决:

解决步骤

  • 第一步:清理并重启gpg-agent
    先在Git Bash终端执行以下命令,杀掉异常的agent进程后手动重启:

    gpgconf --kill all
    gpg-agent --daemon
    

    执行完成后运行gpg -K,确认能正常输出你本地的GPG私钥列表,若没有输出请先执行gpg --import 你的私钥文件路径导入私钥。

  • 第二步:修正GNUPGHOME环境变量配置
    不要使用Windows格式路径配置GNUPGHOME,需改为MinGW兼容的Unix风格路径,在Git Bash中执行:

    # 替换为你实际的.gnupg目录路径,示例为默认用户目录下的.gnupg
    export GNUPGHOME=~/.gnupg
    chmod 700 $GNUPGHOME
    chmod 600 $GNUPGHOME/*
    

    若需要长期生效,可将上面的export命令写入~/.bashrc文件,重启Git Bash后生效。

  • 第三步:升级并配置maven-gpg-plugin
    首先将插件升级到最新稳定版(1.6版本对Windows环境兼容性极差),在pom.xml中调整插件配置,指定gpg可执行文件路径和兼容参数:

    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-gpg-plugin</artifactId>
      <version>3.1.0</version>
      <executions>
        <execution>
          <id>sign-release-artifacts</id>
          <goals>
            <goal>sign</goal>
          </goals>
          <configuration>
            <!-- 替换为你本地Git Bash中gpg.exe的实际Windows路径 -->
            <executable>C:\Program Files\Git\usr\bin\gpg.exe</executable>
            <useAgent>true</useAgent>
            <gpgArguments>
              <arg>--pinentry-mode</arg>
              <arg>loopback</arg>
            </gpgArguments>
          </configuration>
        </execution>
      </executions>
    </plugin>
    
  • 第四步:验证签名功能
    先在Git Bash中手动测试gpg签名是否正常:

    echo "test" | gpg --clearsign
    

    正常输出签名内容后,再执行Maven构建命令,可通过参数传入私钥密码避免交互:

    mvn clean install -Dgpg.passphrase=你的GPG私钥密码
    

特殊情况处理

如果仍报IPC连接错误,可在$GNUPGHOME/gpg-agent.conf文件中新增以下配置,重启gpg-agent后重试:

extra-socket /tmp/gpg-agent.sock

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 11:24:04