Я предоставляю ключ через мои системные переменные и читаю эти значения в моем build.gradle во время сборки. Если эти переменные не установлены, я бы хотел, чтобы моя сборка не удалась.
Как я читаю переменные из системных переменных:
buildTypes.each {
it.buildConfigField 'String', 'VARIABLE_1', "$System.env.VARIABLE_1"
it.buildConfigField 'String', 'VARIABLE_2, "$System.env.VARIABLE_2"
}
Пока это работает, но я бы хотел, чтобы моя сборка не удалась, если эти переменные не установлены. Поэтому я определил пользовательскую задачу, которая вызывается всегда после задачи сборки.
Вот мое решение - но, похоже, не работает. Я не определил VARIABLE_1 в моих системных переменных, но задача строится отлично.
Также я заметил, что эта задача всегда актуальна, поэтому я добавил настройку, которая не всегда актуальна, но, тем не менее, всегда актуальна. VARIABLE_1 и VARIABLE_2 показывают две разные попытки достижения цели.
task checkSystemVariables() {
String system1 = "$System.env.VARIABLE_1"
if (null == system1) {
throw new GradleException('Required VARIABLE_1 environment variable not set.')
}
if (null == System.getenv()['VARIABLE_2']) {
throw new GradleException('Required VARIABLE_2 environment variable not set.')
}
}
checkSystemVariables.outputs.upToDateWhen {false}
assemble.finalizedBy(checkSystemVariables)