我正在使用一个用 Kotlin 编写的 gradle 插件,它似乎在完美的胜利和灾难性的失败之间切换,我找不到原因。
代码片段:
project.exec {
val command = "aws ssm get-parameter --name /config/testconfig/secrets --with-decryption"
commandLine(command.split(" "))
standardOutput = FileOutputStream(secretsJson)
}
这确实不时起作用,并将系统管理器属性下载到JSON文件,突然之间不再工作了。它无法解析到 aws 的路径,即使/usr/local/bin
路径位于 PATH 中。二进制文件在/usr/local/Cellar/awscli/1.16.250/libexec/bin/aws
中找到,并在/usr/local/bin
中链接。如果直接调用该命令,则可以毫无问题地执行该命令。
我已经检查了我的终端和本地 gradle 包装器的环境变量,并且两者中的 PATH 完全相同。
我的同事可以在他的机器上运行两者(两者都在macOS上运行(。
有什么想法吗?我......用尽。
我已经检查了我的终端和本地 gradle 包装器的环境变量,并且两者中的 PATH 完全相同。
project.exec
将产生另一个进程,它有自己的外壳和环境。这个过程可能不会以你期望的方式继承PATH
。您可以通过从该进程内部打印出环境来检查这一点(commandLine("printenv")
(。确保 AWS CLI 仍在 PATH 上。