Gradle - 源代码和测试的不同 JDK 版本

Posted

技术标签:

【中文标题】Gradle - 源代码和测试的不同 JDK 版本【英文标题】:Gradle - Different JDK Version for Source and Test 【发布时间】:2015-04-15 07:58:52 【问题描述】:

如何配置 Gradle 以编译与源类不同的 Java 版本的测试类?

我正在为 Java 1.7 编写一个项目,我想在我的测试中使用 Java 1.8,这样我就可以使用 Lambda Behave。 In Maven this is pretty straightforward,但我看不到如何在 Gradle 中实现相同的结果。

【问题讨论】:

【参考方案1】:

如果您使用的是Kotlin DSL:

plugins 
    `java`


java 
    sourceCompatibility = JavaVersion.VERSION_1_7
    targetCompatibility = JavaVersion.VERSION_1_7


tasks 
    compileTestJava 
        sourceCompatibility = JavaVersion.VERSION_1_8.toString()
        targetCompatibility = JavaVersion.VERSION_1_8.toString()
    

【讨论】:

【参考方案2】:

当然,在发布问题后我偶然发现了答案!

apply plugin: "java"

compileJava 
    sourceCompatibility = 1.7


compileTestJava 
    sourceCompatibility = 1.8

【讨论】:

是的,这种情况经常发生!我也想知道,所以 +1 给你 @EngineerBetter,你知道如何在 android 上做到这一点吗? 不怕,对不起!

以上是关于Gradle - 源代码和测试的不同 JDK 版本的主要内容,如果未能解决你的问题,请参考以下文章

SPRING01_基于gradle6.8.2和JDK15搭建Spring源码坏境

SPRING01_基于gradle6.8.2和JDK15搭建Spring源码坏境

转载Gradle for Android 第四篇( 构建变体 )

gradle怎么设置jdk版本,不用系统环境变量的jdk-Android开发问答

CI 什么是构建 gradle

怎么样在 IDEA 同一个项目里使用不同的 jdk 版本