sourceCompatibility
属性跟编译环境有关,而targetCompatibility
属性跟运行环境有关。
至少有这么几个原则,是不能违背的:
sourceCompatibility
关系到你使用到的Java
语法特性及库sourceCompatibility
不能比targetCompatibility
大targetCompatibility
不能比目标客户端运行环境的JavaVersion
大targetCompatibility
不能比当前Gradle
使用的JavaVersion
大
总结起来就是这样
代码用的语言特性对应的JavaVersion
≦ sourceCompatibility
≦ targetCompatibility
≦ Gradle使用的JavaVersion
≦ 客户端环境的JavaVersion