gradle 在应用程序代码中构建 属性

gradle build property in application code

我想对一些预定义的环境进行验收测试。我有一个文件 env.groovy 和 env{ dev{...}, test{...}} 配置。 我在 build.gradle:

中以这种方式传递了其中一个属性
test {
    enabled = false
    systemProperties = System.getProperties()
    systemProperties['foo'] = 'bar'
}

当我启动这样的测试时 FooValTest

  @Test
    public void testFooVal(){
        assertEquals("bar", System.getProperty("foo"));
    }

它失败了。 来源:https://github.com/mvcatsifma/spring-ctx-props-file/blob/master/src/test/java/AppTest.java

这个标志 enabled=false 有所作为 - 这是为什么?它不允许更改 sysProperties?

我想保留 enabled=false 因为它是继承的。

您没有在此处设置实际的系统属性,您只是在修改返回的数据结构。

根据我的经验,以下方法有效:

test {
  systemProperty "foo", "bar"
}

Enabled 只是启用或禁用任务(第 14.8.3 节 https://docs.gradle.org/current/userguide/more_about_tasks.html