我想为使用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()
答案 0 :(得分:4)
您正在尝试传递错误类型的值。 sourceCompatibility
和targetCompatibility
应该是字符串,但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