gradle - Kotlin Gradle任务命令行无法按照PATH链接进行自制安装

标签 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(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/

相关文章:

gradle - 无法为 gradle 任务设置类型 shadowJar

android - 在移动到下一个 Activity 之前完整地运行一个函数

python - boto3 describe_load_balancers() 不显示任何内容,而 aws-cli 显示全部

java - Kotlin 将类型函数具体化为函数扩展 - 可从 Java 调用?

amazon-web-services - ec2-describe-instance-status Client.InvalidInstanceID.NotFound 但我知道实例存在

amazon-web-services - Jenkins 管道 - 检查 ECS 服务是否存在

android - 继续获取 list 任务不再支持manifestOutputFile属性,请改用manifestOutputDirectory。

android - 任务 ':app:compileDebugKotlin'的执行失败。 >内部编译器错误。请参阅日志以获取更多详细信息

gradle - 我的Kotlin项目无法解决对Travis-CI的依赖

android - 更改 minSdkVersion 后的 java.lang.UnsatisfiedLinkError