Kotlin Gradle任务命令行可以';t按路径链接到自制软件安装
我正在使用一个用Kotlin编写的gradle插件,它似乎在完美的胜利和灾难性的失败之间切换,我不知道为什么 代码段:Kotlin Gradle任务命令行可以';t按路径链接到自制软件安装,gradle,kotlin,aws-cli,gradle-kotlin-dsl,Gradle,Kotlin,Aws Cli,Gradle Kotlin Dsl,我正在使用一个用Kotlin编写的gradle插件,它似乎在完美的胜利和灾难性的失败之间切换,我不知道为什么 代码段: project.exec { val command = "aws ssm get-parameter --name /config/testconfig/secrets --with-decryption" commandLine(command.split(" ")) standardOutput = FileOutputStream(secrets
project.exec {
val command = "aws ssm get-parameter --name /config/testconfig/secrets --with-decryption"
commandLine(command.split(" "))
standardOutput = FileOutputStream(secretsJson)
}
这会不时地工作,并将Systems Manager属性下载到JSON文件中,但突然之间就不再工作了。它无法解析aws的路径,即使路径中有/usr/local/bin
。二进制文件位于/usr/local/ceral/awscli/1.16.250/libexec/bin/aws
中,并链接在/usr/local/bin
中。如果直接调用,则可以执行命令而不会出现问题
我已经检查了终端和本地gradle包装器的环境变量,路径在两者中完全相同
我的同事能够在他的机器上运行这两个程序(都在macOS上)
有什么想法吗?我是筋疲力尽
我已经检查了终端和本地gradle包装器的环境变量,路径在两者中完全相同
project.exec
将生成另一个进程,它有自己的shell和环境。而且该进程可能不会以您期望的方式继承路径。您可以通过从该进程内部打印出环境来检查这一点(commandLine(“printenv”)
)。确保AWS CLI仍在路径上。这是否回答了您的问题?每个用户都应该知道系统范围的$PATH
。只需尝试val command=“echo$PATH”
或\$PATH
(此值从系统范围和用户特定区域合并而来)。“突然不再工作”可能意味着$PATH
已更改-或者正在以另一个用户的身份运行。我已编辑了~/.zshrc(macOS),但路径未更改。它只是在格拉德尔停止工作。我已经将绝对路径添加到我的aws二进制文件中,并多次重新启动了我的系统,从那时起,它就不再发生了。我们拭目以待。。。谢谢我已经创建了一个gradle任务来打印当前的gradle环境变量,并且路径是相同的。我现在已经将aws的绝对路径添加到路径中,从那以后就没有出现过这个问题。我只是对它最初是如何(或为什么)发生的感到困惑。谢谢你的帮助!