Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kotlin Gradle任务命令行可以';t按路径链接到自制软件安装_Gradle_Kotlin_Aws Cli_Gradle Kotlin Dsl - Fatal编程技术网

Kotlin Gradle任务命令行可以';t按路径链接到自制软件安装

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

我正在使用一个用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文件中,但突然之间就不再工作了。它无法解析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的绝对路径添加到路径中,从那以后就没有出现过这个问题。我只是对它最初是如何(或为什么)发生的感到困惑。谢谢你的帮助!