首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在gradle中为不同的源集设置不同的源和目标兼容性

如何在gradle中为不同的源集设置不同的源和目标兼容性
EN

Stack Overflow用户
提问于 2016-07-21 20:58:06
回答 1查看 668关注 0票数 0

我有一个项目,它有两个源树(客户端和主)。客户端需要编译到Java 1.7,而main包含Java 1.8构造。我定义了以下gradle源码集:

代码语言:javascript
运行
复制
sourceSets {
main {
    java {
        srcDir "src/main/java"
        srcDir "src/client/java"
    }
}
    compileMainJava {
        sourceCompatibility = "1.8"
        targetCompatibility = "1.8"
    }

client {
    java {
        srcDir "src/client/java"
    }
}
    compileClientJava {
        sourceCompatibility = "1.7"
        targetCompatibility = "1.7"
    }
}

然而,主要的源码集显然是用1.7编译的,因为我得到了这个

代码语言:javascript
运行
复制
:compileJavawarning: [options] bootstrap class path not set in conjunction with -source 1.7
C:\dev\eclipse-ws\generic\IoT-Sound\src\main\java\com\ibm\watson\iot\sound\feature\mfcc\MFCCFeatureExtractor.java:129: error: method references are not supported in -source 1.7
                double[] x = Stream.of(xDataBoxed).mapToDouble(Double::doubleValue).toArray();

(use -source 8 or higher to enable method references)

如果我注释掉compileMainJava元素,那么它成功地构建了这两个元素,并且似乎将客户端编译到了1.7,因为我收到了与compileClientJava相同的警告(没有错误)。我猜这是因为我使用的是1.8JDK,但无论如何都想添加这些属性。

那么,如何将主兼容性设置为1.8,将客户端兼容性设置为1.7?谢谢。

EN

回答 1

Stack Overflow用户

发布于 2016-07-21 22:50:08

您不能在同一个project中有两个语言版本。也就是说,您可以拥有其他具有不同Java版本的模块。

在这种情况下,您可能需要3个模块

代码语言:javascript
运行
复制
:client
:main
:common

现在,如果希望将project(':client')设置为Java 7,可以在client/build.gradle中设置它

代码语言:javascript
运行
复制
compileJava {
    sourceCompatibility = JavaVersion.VERSION_1_7
    targetCompatibility = JavaVersion.VERSION_1_7
}

然后在main/build.gradle中将project(':main')定义为Java 8

代码语言:javascript
运行
复制
compileJava {
    sourceCompatibility = JavaVersion.VERSION_1_8
    targetCompatibility = JavaVersion.VERSION_1_8
}

只需确保在project(':common')中使用Java 7,否则客户端将不知道如何读取由common生成的Java8字节码。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38504928

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档