如何在gradle任务中检查系统变量

时间:2019-01-17 17:12:21

标签: android android-gradle system-variable

我通过我的systemvariables提供了一个密钥,并且在构建期间正在build.gradle中读取这些值。如果未设置这些变量,则我希望构建失败。

我如何从systemvariables中读取变量:

buildTypes.each {
    it.buildConfigField 'String', 'VARIABLE_1', "$System.env.VARIABLE_1"
    it.buildConfigField 'String', 'VARIABLE_2, "$System.env.VARIABLE_2"
}

到目前为止,该方法仍然有效-但是,如果未设置这些变量,我希望构建失败。因此,我定义了一个自定义任务,该任务总是在汇编任务之后调用。 这是我的解决方案-但这似乎行不通。我没有在Systemvariables中定义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) 


0 个答案:

没有答案