gpt4 book ai didi

gradle - 在使用Gradle 5.4的multibuild项目中,java 8的sourceSompatiblity无效

转载 作者:行者123 更新时间:2023-12-03 05:36:00 25 4
gpt4 key购买 nike

我正在尝试使用Gradle 5.4和Intellij为某些子项目提供具有不同Java版本的multibuild项目。
首先,我将所有子项目更新为在build.gradle开头具有以下代码

apply plugin: 'java'
sourceCompatibility = JavaVersion.VERSION_1_6
targetCompatibility = JavaVersion.VERSION_1_6

在Intellij中导入Gradle项目后,Intellij已使用以下行的iml文件进行了更新:
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_6">

然后我用Java 8而不是Java 6更新了一个特定的子项目,如下所示
{码}
应用插件:“java”
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
{码}
但是iml文件没有更改。我尝试了不同的方法,但是gradle似乎忽略了Java8。我将Java 8更改为Java 7,并将iml文件更新为:

我用 sourceCompatibility = JavaVersion.VERSION_1_8用Java 9更新了gradle文件,然后gradle更新了所有项目以使用Java 8!
甚至将源和目标兼容性设置为Java 1.6的子项目。
这是一个错误还是我应该缺少什么?
我不知道是否相关,是在运行compileJava时收到以下警告:
warning: [options] bootstrap class path not set in conjunction with -source 1.6

最佳答案

我可以解决这个问题。问题是Intellij Project中的默认语言级别是Java6。我将其更改为Java8。然后在主项目中,我添加了子项目下的gradle

apply plugin: 'java'
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8

然后只针对我想用Java 6进行编译的子项目,在其build.gradle的开头,我添加了
apply plugin: 'java'
sourceCompatibility = JavaVersion.VERSION_1_6
targetCompatibility = JavaVersion.VERSION_1_6

然后在每个Java 1.6的项目.ipr文件中,我得到一个bytecodeTargetLevel:
<bytecodeTargetLevel>
<module name="common" target="1.6" />
</bytecodeTargetLevel>

并在Java 1.6语言级别的每个iml文件中将其添加到主要组件中,如下所示:
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_6">

关于gradle - 在使用Gradle 5.4的multibuild项目中,java 8的sourceSompatiblity无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56165343/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com