我正在使用用Kotlin编写的gradle插件,该插件似乎在完美的胜利和灾难性的失败之间切换,我不知道为什么。
程式码片段:
project.exec {
val command = "aws ssm get-parameter --name /config/testconfig/secrets --with-decryption"
commandLine(command.split(" "))
standardOutput = FileOutputStream(secretsJson)
}
这确实会不时地起作用,并将Systems Manager属性下载到JSON文件,突然之间不再存在。即使
/usr/local/bin
在PATH中,它也无法解析aws的路径。该二进制文件可在/usr/local/Cellar/awscli/1.16.250/libexec/bin/aws
中找到,并在/usr/local/bin
中链接。如果直接调用该命令,则可以毫无问题地执行。我检查了终端和本地gradle包装器的环境变量,两者的PATH完全相同。
我的同事能够在他的机器上运行(都在macOS上)。
有任何想法吗?我累死了。
最佳答案
I've checked the environment variables of both my terminal and my local gradle wrapper and PATH is exactly the same in both.
project.exec
将产生另一个进程,它具有自己的shell和环境。而且该过程可能不会以您期望的方式继承PATH
。您可以通过从该进程内部打印环境(commandLine("printenv")
)进行检查。确保AWS CLI仍在PATH上。
关于gradle - Kotlin Gradle任务命令行无法按照PATH链接进行自制安装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60197333/