【发布时间】:2015-03-04 16:39:44
【问题描述】:
我见过:Avoid gpg signing prompt when using Maven release plugin,但它适用于非常旧的 maven 版本,而且我使用的是 3.2.2,因此不适用相同的解决方案。
基本上,无论命令行上的属性、pom.xml 中的属性或环境变量如何组合,我都无法获取 maven gpg 插件以避免弹出代理对话框。
出于安全原因,我们决定不在 settings.xml 中以纯文本形式包含密码,因为这是一个糟糕的主意。并且使用加密的 Maven 东西只是将主密钥移动到不同的纯文本文件。
软件版本:
$ gpg --version
gpg (GnuPG) 2.1.2
libgcrypt 1.6.2
$ mvn --version
Apache Maven 3.2.2 (45f7c06d68e745d05611f7fd14efb6594181933e; 2014-06-17T08:51:42-05:00)
我试过了
mvn -Dgpg.passphrase='lolpassphrase'
使用 pom.xml 中的属性从环境中获取:
<properties>
<gpg.keyname>E7C89BBB</gpg.keyname>
<gpg.passphrase>${env.GPG_PASSPHRASE}</gpg.passphrase>
</properties>
然后:
GPG_PASSPHRASE='lolpassphrase' mvn install
编辑:显然我的 gpg 代理妨碍了我并骗了我 如果我在 pom.xml 属性中设置了实际密码,GPG 代理会仍然提示我:(
<properties>
<gpg.keyname>E7C89BBB</gpg.keyname>
<gpg.passphrase><![CDATA[lolcomplicatedpassphrase]]></gpg.passphrase>
</properties>
必须有一种方法可以做到这一点,而无需在某处以纯文本形式保存密码,但我无法使用正确的谷歌来找到这个答案,希望你们能帮助我。
【问题讨论】: