我已经使用gpg
(macOS)和brew
安装了brew install gnupg gnupg2
,它可以正常工作。我可以使用它,也可以只检查gpg --version
或其他内容。
问题是,当我从Android Studio中的gradle任务运行它时,它不再起作用:不再找到gpg
命令。
任务是(实际上没什么特别的):
task decryptSigningProperties(type: Exec) {
commandLine 'gpg', '--passphrase-file', file(project.property("passPhraseFile")), '-o', 'signing.properties', '-d', 'signing.properties.enc'
}
而且我在Jenkins构建日志中收到一个错误:
同时,我可以手动执行操作,导航到特定目录并运行:
gpg -o signing.properties -d signing.properties.enc
然后,一切正常(提示我通过并进行解密)。
那么,为什么在任务中无法识别
gpg
命令,但是我可以从终端中运行它呢?有人在这类问题上有经验吗? 最佳答案
这听起来像您在使用Gradle和常规命令行时的$PATH
变量不一样。通过运行which gpg
(在您使用/usr/local/bin/gpg
时可能为brew
)找出GnuPG的安装位置。在您的Gradle任务中配置$PATH
变量以包括/usr/local/bin
(或which gpg
确定的任何路径),或使用完整的绝对路径调用GnuPG。