繁体   English   中英

如何在Gradle中指定模块的JDK编译级别

[英]How to specify the JDK compile level of a module in Gradle

我在Android项目中有一个纯Java模块。 我的项目默认使用JDK 8进行编译,但是我希望Java模块使用JDK 7进行编译。如何为我的纯Java模块指定1.7的编译级别? 请记住,我不想覆盖项目级别的编译级别1.8。

您可以通过两种方式执行此操作:

1-将此块添加到您的应用程序build.gradle

android{
....
  compileOptions {
      sourceCompatibility JavaVersion.VERSION_1_8
      targetCompatibility JavaVersion.VERSION_1_8
  }
}

2-使用android studio添加此块:

  • 转到“ 文件”>“项目结构”
  • 在“ 模块”部分中 ,选择您的应用 (或其他模块)模块。
  • 源兼容性目标兼容性值更改为1.8

更新:

注意:如果您使用kotlin作为Gradle语言(kotlin dsl),则应采用以下方式:

android{
....
  compileOptions {
      setSourceCompatibility(JavaVersion.VERSION_1_8)
      setTargetCompatibility(JavaVersion.VERSION_1_8)
  }
}

我找到了答案:

//noinspection GroovyUnusedAssignment
sourceCompatibility = 1.7
//noinspection GroovyUnusedAssignment
targetCompatibility = 1.7

您可以指定源和目标兼容性级别。 混合使用Android和Java模块时,通常需要这样做。

两种方式

  1. gradle.properties的gradle.properties中,设置org.gradle.java.home=/path_to_jdk_directory

  2. 在您的gradle.build

     compileJava.options.fork = true compileJava.options.forkOptions.executable = /path_to_javac 

可以通过将其添加到Java库模块的build.gradle中来设置Android Studio中Java库模块的目标/源兼容性级别:

tasks.withType(JavaCompile) {
    sourceCompatibility = '1.7'
    targetCompatibility = '1.7'
}

您可以对app/build.gradle执行以下app/build.gradle

android {    
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    } 
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM