Gradle在任务中设置buildConfigField

时间:2017-05-15 23:03:16

标签: java gradle build.gradle

我有一个java项目,我使用de.fuerstenau.buildconfig gradle插件从我的构建脚本中设置java常量。我有两个任务可以为" HOME"创造一个具有不同价值的战争。常数:

buildscript {
repositories {
    maven {
      url "https://plugins.gradle.org/m2/"
    }
  }
  dependencies {
    classpath "gradle.plugin.de.fuerstenau:BuildConfigPlugin:1.1.8"
  }
}
apply plugin: 'de.fuerstenau.buildconfig'

[... left out]

buildConfig { 
    buildConfigField 'String', 'HOME', 'TEST_HOME'
}

task createLiveOnly(type: War, dependsOn: classes, group: 'build') {

    buildConfig {
        buildConfigField 'String', 'HOME', 'LIVE_HOME'
    }

    archiveName = 'live.war'
    destinationDir = file("$buildDir/libs")
}

task createTestOnly(type: War, dependsOn: classes, group: 'build') {
    buildConfig {
        buildConfigField 'String', 'HOME_ENV_NAME', 'ISAMT_TEST_HOME'
    }
    archiveName = 'test.war'
    destinationDir = file("$buildDir/libs")
}

task createWars(dependsOn: [createLiveOnly, createTestOnly], group: 'build')

[... left out]

}

意图:在运行createLiveOnly时,HOME =' LIVE_HOME'。运行createTestOnly时,HOME =' TEST_HOME'。运行createWars时,它会同时为HOME的两个值创建。当运行其他所有内容时(例如标准的gradle war),它默认为“TEST_HOME'”。 不幸的是,这不起作用,因为常量始终设置为' TEST_HOME'即使只运行createLiveOnly。为什么?我该如何解决?

感谢您的回答!

0 个答案:

没有答案