Kotlin Командная задача Gradle не может перейти по ссылке PATH на установку homebrew - PullRequest
1 голос
/ 13 февраля 2020

Я использую плагин gradle, написанный на Kotlin, который, кажется, переключается между безупречной победой и катастрофическим провалом, и я не могу понять, почему.

Фрагмент кода:

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).

Есть идеи? Я изможден.

1 Ответ

1 голос
/ 13 февраля 2020

Я проверил переменные окружения как моего терминала, так и моей локальной оболочки Gradle, и PATH абсолютно одинаков в обоих.

project.exec создаст другой процесс с собственной оболочкой и окружением. И этот процесс может не наследовать PATH так, как вы этого ожидаете. Вы можете проверить это, распечатав среду внутри этого процесса (commandLine("printenv")). Убедитесь, что AWS CLI все еще находится в ПУТИ.

...