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

如何配置gpg-agent在maven-gpg-plugin使用时弹出密码输入请求

搞定Maven GPG签名:让gpg-agent主动要密码,再也不用存密码啦!

嘿,我刚好折腾过这个需求,之前也反感把加密密码存在settings-security.xml里,现在给你一套完整的配置方案,完全不用存密码,构建时gpg-agent会主动弹框要密码,太舒服了!

首先得确认你已经升级到GPG 2.x版本——gpg-agent是2.x自带的玩意儿,1.x没这功能,所以先把GPG更到2.x再说哈。

1. 先把gpg-agent配置好

打开(或者新建)你的GPG agent配置文件~/.gnupg/gpg-agent.conf,加下面这些内容:

enable-ssh-support
pinentry-program /usr/bin/pinentry-gtk-2  # 选你系统能用的pinentry,比如图形界面用gtk,终端用curses
default-cache-ttl 3600  # 密码缓存1小时,不想频繁输就调长点
max-cache-ttl 86400     # 最长缓存1天,按需改

保存完重启gpg-agent生效:

gpgconf --kill gpg-agent
gpg-agent --daemon

2. 配置Maven的Profile和gpg插件

你已经有激活的Profile了,直接在里面加maven-gpg-plugin的配置就行,核心是让它用gpg-agent,别碰密码存储:

<profile>
  <id>gpg-sign</id>
  <activation>
    <activeByDefault>true</activeByDefault>
  </activation>
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-gpg-plugin</artifactId>
        <version>3.1.0</version> <!-- 用最新稳定版,别用太老的 -->
        <executions>
          <execution>
            <id>sign-artifacts</id>
            <phase>verify</phase>
            <goals>
              <goal>sign</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <gpgExecutable>gpg2</gpgExecutable> <!-- 指定用GPG 2.x的程序 -->
          <useAgent>true</useAgent> <!-- 关键!打开gpg-agent支持 -->
          <!-- 这里绝对不要加passphrase相关的配置,让agent自己处理密码请求 -->
        </configuration>
      </plugin>
    </plugins>
  </build>
</profile>

3. 测试一下配置

跑个Maven构建命令试试:

mvn clean verify

这时候gpg-agent会弹出你配置的pinentry窗口(终端环境就是交互式输入),输入你的GPG密钥密码,就能完成签名啦!而且密码会缓存你设置的时长,短时间内再构建不用重复输。

几个小提醒

  • 先确认你的GPG密钥已经在本地,用gpg --list-secret-keys能看到就行。
  • 如果是服务器上用(没图形界面),把pinentry-program改成/usr/bin/pinentry-curses,终端里就能输密码。
  • 千万别在Maven配置里加passphrase或者passphraseServerId,不然会覆盖agent的行为,又回到存密码的老路了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 04:07:43