Adi*_*ain 9 gradle build.gradle android-gradle-plugin
我有一个Gradle项目,包括一个Android模块(该com.android.library插件应用于该build.gradle文件中)和一个Java模块(该java插件应用于该build.gradle文件中).在build.gradleJava模块的文件中,我之前指定了源和目标兼容性,如下所示:
apply plugin: 'java'
compileJava {
sourceCompatibility = 1.7
targetCompatibility = 1.7
}
Run Code Online (Sandbox Code Playgroud)
我刚刚将项目的"Android插件for Gradle"和"Gradle Wrapper"版本更新到最新版本(分别为2.2.3和3.2.1),现在我在Java模块中看到如下警告:
Access to 'sourceCompatibility' exceeds its access rights
Access to 'targetCompatibility' exceeds its access rights
Run Code Online (Sandbox Code Playgroud)
如果我将sourceCompatibility和targetCompatibility声明移动到模块build.gradle文件的根级别,如下所示......
apply plugin: 'java'
sourceCompatibility = 1.7
targetCompatibility = 1.7
Run Code Online (Sandbox Code Playgroud)
...然后我收到警告信息,告诉我没有使用任务.
在最新的Gradle版本中指定Java模块的源和目标兼容级别的正确方法是什么?
小智 13
需要在compileJava块中指定兼容性
compileJava {
sourceCompatibility = '1.8'
targetCompatibility = '1.8'
}
Run Code Online (Sandbox Code Playgroud)
IntelliJ发出此警告
对"sourceCompatibility"的访问超出了其访问权限
如果你使用双参数.
当您将值设为字符串(例如引用)时,警告将消失.
- 编辑 -
此警告仅在IntelliJ 2016中使用1.8出现.2017年,使用1.8或中的警告消失'1.8'
我认为最后一个(根中的声明)是正确的,并且它必须正常工作,尽管它会在 IDE 中引起警告。没有任何地方说,声明它的首选方式是什么,官方文档中只有一个示例,它的用法如下:
sourceCompatibility = 1.6
Run Code Online (Sandbox Code Playgroud)
在 的根中build.gradle。
| 归档时间: |
|
| 查看次数: |
18392 次 |
| 最近记录: |