我需要在构建文件中为各种任务设置相同的系统属性列表,例如:

test {
  systemProperty 'foo', 'bar'
  systemProperty 'key', 'value'
}
run {
  systemProperty 'foo', 'bar'
  systemProperty 'key', 'value'
}
task(dbg, dependsOn: 'classes', type: JavaExec) {
  systemProperty 'foo', 'bar'
  systemProperty 'key', 'value'
}

将它们重构为助手的正确方法是什么?我尝试了ext.myMethod,但它不知道有关systemProperty调用(也不包含jvmArgs,环境等)。

最佳答案

让我建议将系统属性放入一个映射中,并在对选定任务的 systemProperties 方法的多次调用中重用此映射:

def myProperties = [
    foo: 'bar',
    key: 'value'
]

test {
    systemProperties myProperties
}

run {
    systemProperties myProperties
}

// ...

10-06 08:02