Kotlin Gradle 任务命令行无法遵循 PATH 链接到自制软件安装



我正在使用一个用 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 上。

最新更新