Как проверить системную переменную в задании Gradle - PullRequest
0 голосов
/ 17 января 2019

Я предоставляю ключ через мои системные переменные и читаю эти значения в моем 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) 


...