安装了GnuPG,但是从gradle任务“找不到命令”

时间:2017-07-31 12:00:22

标签: android gradle task gnupg

我使用brew(macOS)和brew install gnupg gnupg2安装了gpg --version,它可以正常使用。我可以使用它,或只是检查gpg或其他。

  MacMini:〜提高$ gpg --version
  gpg(GnuPG)2.1.22
  libgcrypt 1.8.0

问题是,当我从Android Studio中的gradle任务运行它时,它不再起作用:找不到task decryptSigningProperties(type: Exec) { commandLine 'gpg', '--passphrase-file', file(project.property("passPhraseFile")), '-o', 'signing.properties', '-d', 'signing.properties.enc' } 命令。

任务是(实际上没什么特别的):

gpg -o signing.properties -d signing.properties.enc

我在Jenkins构建日志中收到错误:

  
      
  • 出了什么问题:
      任务':app:decryptSigningProperties'的执行失败   启动进程'命令'gpg''
  • 时出现问题   

同时,我可以手动完成,导航到特定目录并运行:

gpg

然后,一切正常(它提示我传递并进行解密)。

那么为什么命令feature:install camel-servlet 在任务中无法识别,但我可以从终端运行?有没有人对某种问题有一些经验?

1 个答案:

答案 0 :(得分:1)

这听起来像使用Gradle和普通命令行时$PATH变量不一样。通过运行which gpg找出GnuPG的安装位置(可能/usr/local/bin/gpg,因为您正在使用brew)。在Gradle任务中配置$PATH变量以包含/usr/local/bin(或which gpg确定的路径),或使用完整的绝对路径调用GnuPG。