Среда экспорта Gradle, возвращенная из скрипта - PullRequest
0 голосов
/ 22 марта 2020

Я пытаюсь написать задачу gradle, которая выполняет следующее:

  1. Выполняет скрипт для получения некоторых данных (скажем, внутри есть скручивание)
  2. Устанавливает переменную среды с этим data.

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

Мой код выглядит следующим образом:

task myTask(type: Exec) {
    executable "sh"
    args "-c", "export", "myVar=\$(sh ./script.sh)"
    doLast {
       println System.getenv("myVar") 
    }
}

Однако при выполнении я вижу в консоли все мои печатаемые переменные env (export KEY = VALUE) и System.getenv ("myVar") печатает ноль.

Что я делаю неправильно? Может быть, есть лучший способ достичь моей цели?

1 Ответ

0 голосов
/ 22 марта 2020

Динамическое обновление / настройка переменных среды - это то, что легко сделать или возможно, основываясь на ответах на эти вопросы (и многие другие):

Я думаю, что лучшим решением будет запись во временный файл данных, которые вам нужны, затем прочитайте их как часть задачи Gradle:

task myTask(type: Exec) {
    executable "sh"
    args "sh ./script.sh"
    doLast {
       new File("my-file.data")
    }
}
...