我最终以比我想要的要多的手动方式解决了这个问题-但至少它可以工作。
为了将设置与实现分开,每个开发人员都有一个gradle.properties
未检入版本控制的文件。该文件包含以下信息(在我的工作站上):
javaVersion=1.6
javaPath=C:/Program/Java/jdk1.6.0_45
jdkName=jdk1.6.0_45
在构建脚本中,然后执行以下操作以使所有配置正确:
// Set sourceCompatibility
if (project.hasProperty('javaVersion')) {
project.sourceCompatibility = project.javaVersion
}
// Set bootClasspath - but wait until after evaluation, to have all tasks defined
project.afterEvaluate {
if (project.hasProperty('javaPath')) {
project.tasks.withType(AbstractCompile, {
it.options.bootClasspath = "${project.javaPath}/jre/lib/rt.jar"
})
}
}
// Configure Eclipse .classpath
project.eclipse.classpath.file.whenMerged { Classpath cp ->
if (project.hasProperty('jdkName') {
cp.entries.findAll { it.path.contains('JRE_CONTAINER') }.each {
it.path += "/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/$project.jdkName"
}
}
}
到目前为止,我已经在几个项目中使用了它,并且它已经起作用了,所以我认为它至少是可移植的-但可能需要进行一些修改以使其适用于其他人。