如何将一组systemProperty调用从一组Gradle java任务中分离出来?

如何将一组systemProperty调用从一组Gradle java任务中分离出来?,java,gradle,task,Java,Gradle,Task,我需要为构建文件中的各种任务设置相同的系统属性列表,例如: test { systemProperty 'foo', 'bar' systemProperty 'key', 'value' } run { systemProperty 'foo', 'bar' systemProperty 'key', 'value' } task(dbg, dependsOn: 'classes', type: JavaExec) { systemProperty 'foo', 'bar'

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

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、环境等)

我建议将系统属性放入映射中,并在对所选任务的方法的多次调用中重用该映射:

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

test {
    systemProperties myProperties
}

run {
    systemProperties myProperties
}

// ...