无法在根项目上找到方法sourceCompatibility()

时间:2015-10-23 07:57:10

标签: java gradle javacompiler

我想为使用Gradle构建的Java library定义目标兼容性。因此,我添加了以下块as documented for the Java plugin

apply plugin: 'java'

// ...

compileJava {
    sourceCompatibility JavaVersion.VERSION_1_7
    targetCompatibility JavaVersion.VERSION_1_7
}

组装项目时,会出现以下错误

  

无法在根项目

上找到参数[1.7]的方法sourceCompatibility()

相关

1 个答案:

答案 0 :(得分:4)

您正在尝试传递错误类型的值。 sourceCompatibilitytargetCompatibility应该是字符串,但JavaVersion.VERSION_1_7不是字符串,而只是覆盖toString()方法。这就是你在异常文本中得到for arguments [1.7]的原因。试着这样做:

compileJava {
    sourceCompatibility JavaVersion.VERSION_1_7.toString()
    targetCompatibility JavaVersion.VERSION_1_7.toString()
}

compileJava {
    sourceCompatibility "$JavaVersion.VERSION_1_7"
    targetCompatibility "$JavaVersion.VERSION_1_7"
}

或者只是将它从compileJava闭包移出到脚本体,就像它通常使用的那样,如:

sourceCompatibility = JavaVersion.VERSION_1_7
targetCompatibility = JavaVersion.VERSION_1_7