我有一个包含Android模块的Gradle项目(com.android.library
文件中应用了build.gradle
插件)和一个Java模块(java
插件应用于{{ 1}}文件)。在Java模块的build.gradle
文件中,我之前指定了源和目标兼容性,如下所示:
build.gradle
我刚刚更新了项目" Gradle的Android插件"和#34; Gradle Wrapper"版本到最新版本(分别为2.2.3和3.2.1),我现在在Java模块中看到警告如下:
apply plugin: 'java'
compileJava {
sourceCompatibility = 1.7
targetCompatibility = 1.7
}
如果我将Access to 'sourceCompatibility' exceeds its access rights
Access to 'targetCompatibility' exceeds its access rights
和sourceCompatibility
声明移到模块targetCompatibility
文件的根级,如下所示......
build.gradle
...然后我收到警告消息,告诉我没有使用分配。
在最新的Gradle版本中指定Java模块的源和目标兼容级别的正确方法是什么?
答案 0 :(得分:8)
需要在compileJava块
中指定兼容性compileJava {
sourceCompatibility = '1.8'
targetCompatibility = '1.8'
}
IntelliJ提供此警告
访问&source资源'超过其访问权限
如果您使用双参数。
当您将值设为字符串(例如引用)时,警告将消失。
- 编辑 -
仅在IntelliJ 2016中使用1.8显示警告。2017年,使用1.8
或'1.8'
答案 1 :(得分:2)
我认为最后一个(根目录中的声明)是正确的,它必须正常工作,尽管它会在IDE中引发警告。它没有说,声明它的首选方式是什么,official docs中只有一个例子,它被用作:
sourceCompatibility = 1.6
在build.gradle
。