Java 在根项目上找不到参数的方法sourceCompatibility()
我想为用Gradle构建的a定义源和目标兼容性。因此,我添加以下块 当我组装项目时,会出现以下错误: 在根项目上找不到参数[1.7]的方法sourceCompatibility()Java 在根项目上找不到参数的方法sourceCompatibility(),java,gradle,javacompiler,Java,Gradle,Javacompiler,我想为用Gradle构建的a定义源和目标兼容性。因此,我添加以下块 当我组装项目时,会出现以下错误: 在根项目上找不到参数[1.7]的方法sourceCompatibility() 相关的 您试图传递错误类型的值sourceCompatibility和targetCompatibility应该是字符串,但是JavaVersion。VERSION\u 1\u 7不是字符串,只是使用重写的toString()方法枚举。这就是为什么在异常文本中有参数[1.7]的原因。试着像这样做: compil
相关的
sourceCompatibility
和targetCompatibility
应该是字符串,但是JavaVersion。VERSION\u 1\u 7
不是字符串,只是使用重写的toString()
方法枚举。这就是为什么在异常文本中有参数[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
... 或者只写“1.7”,而不使用
JavaVersion
枚举。@Stanislav您最后的建议sourceCompatibility JavaVersion.VERSION\u 1\u 7..
对我不起作用,并产生与以前相同的错误。第一条和第二条建议有效,尽管前者在IntelliJ 14.1.5中产生了检查警告<代码>。。。无法应用于(字符串)。所以,我可能会使用第二种方法。@JJD奇怪的是,它对我来说是有效的,gradle 2.6和Intellij14.1.3,如果要将它排除在任何任务之外的话closure@JJD我的错误是,由于我们将属性设置为非配置闭包,我们必须提供=
,所以我更新了答案。我刚刚下载了你的项目并添加到构建脚本rootsourceCompatibility=JavaVersion.VERSION\u 1\u 7
和targetCompatibility=JavaVersion.VERSION\u 1\u 7
,它是用gradlew成功构建的。@JJD你可以忽略它,这个想法似乎不知道,它们被用于其他插件中。为了检查gradle java plugin是否接受该选项,请按如下方式修改该选项,使其值等于ErrorVersion
字符串。您的构建将失败,因为gradle无法确定java版本。如果您想阻止idea在这个属性下面加下划线,只需修改一些任务,在配置阶段将这些值作为附加信息打印给用户。
compileJava {
sourceCompatibility "$JavaVersion.VERSION_1_7"
targetCompatibility "$JavaVersion.VERSION_1_7"
}
sourceCompatibility = JavaVersion.VERSION_1_7
targetCompatibility = JavaVersion.VERSION_1_7