<% if scope.lookupvar("gpg_version").to_f >= 2.1 %>
pinentry-mode loopback
<% end %>
事实
Facter.add("gpg_version") do
setcode do
result = ''
begin
first_line = `gpg --version`.split("\n")[0]
match = first_line.match /.* ([0-9\.]*)$/
result = match[1]
rescue
end
result
end
end
4条答案
按热度按时间icomxhvb1#
我在https://myshittycode.com/2017/08/07/maven-gpg-plugin-prevent-signing-prompt-or-gpg-signing-failed-no-such-file-or-directory-error/找到了一个很好的解释
我会重新张贴的要点后,以防网页下降:
如果你1)最初让它在过去工作,2)已经尝试了各种解决方案,从网络上,仍然不能让它工作,机会是你已经不知不觉地升级GPG版本从2.0到2.1。
听起来不错...
要解决此问题,GPG 2.1要求将**--pinentry-mode设置为loopback**,以便获取Maven settings.xml中定义的gpg.passphrase值。
因此,将pom.xml中的Maven GPG插件配置更新为以下内容:
ngynwnxp2#
与其修改每一个pom.xml来让Jenkins满意,不如使用更新的gpg将以下内容添加到Jenkins slaves上的
~/.gnupg/gpg.conf
中:puppet
如果gpg版本是2.1或更高版本,我使用puppet创建
gpg.conf
文件时会用到这个条目:模板
事实
izkcnapc3#
升级到一个更新的maven-gpg-plugin版本对我有帮助,从1.5升级到3.0.1。
希望这对某些人来说至少是一次尝试🙏
mo49yndu4#
这对我很有效: