我通过我的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)