В нашей сборке переменные среды вычисляются в общем месте.
tasks.withType(Test) {
environment << project.environmentVars
}
Фактические переменные в настоящее время загружаются в другом сценарии сборки:
ext.environmentVars = [:] as Map<String, String>
// ... setting many variables ...
Некоторыедля того, чтобы быть настроенным, необходимо вызывать команды, чтобы получить правильные значения для вставки, поэтому я хотел бы отложить работу.
Я знаю, что могу сделать это:
tasks.withType(Test) {
doFirst {
environment << project.environmentVars
}
}
НоЯ обеспокоен тем, что это может привести к тому, что задача не будет обрабатывать среду как входную, поэтому изменяющаяся среда может не запускать тесты.
В идеале я хотел бы сделать следующее:
tasks.withType(Test) {
environment << { project.environmentVars }
}
Но, конечно, это ошибка.
Есть ли правильный способ сделать это?