gpt4 book ai didi

kotlin - 使用 gradle 约定插件设置 kotlin jvmTarget 选项

转载 作者:行者123 更新时间:2023-12-04 08:29:41 25 4
gpt4 key购买 nike

使用 Gradle convention plugin在子项目之间共享通用配置,设置 Kotlin 编译器选项(如 jvmTarget)的正确方法是什么?

此插件设置生成了一个工作构建,但 IntelliJ 不理解它,这让我认为这不是正确的方法:

plugins {
id 'org.jetbrains.kotlin.jvm'
}

repositories {
jcenter()
}

dependencies {
// shared dependencies
}

tasks.named('test') {
useJUnitPlatform()
}

tasks {
compileKotlin {
kotlinOptions.jvmTarget = "1.8"
}
compileTestKotlin {
kotlinOptions.jvmTarget = "1.8"
}
}

这个插件在子项目中的应用是这样的:

plugins {
id 'my.kotlin-conventions'
id 'java-library'
}

我正在使用 Gradle 6.7、Kotlin 1.4.20。


编辑:关于 IntelliJ 问题的更多信息

在 IntelliJ 的子项目中,我看到警告 Cannot inline bytecode built with JVM target 1.8 into bytecode that is being builded with JVM target 1.6。请指定正确的“-jvm-target”选项。在根项目中我没有看到警告,只有在子项目中。构建和运行项目不会产生任何问题(或警告)。

样本:https://github.com/nieldw/IntelliJ_Gradle_Convention_Plugin_Issue

最佳答案

IntelliJ 似乎不喜欢 buildSrc/settings.gradle 文件。当我删除它并“重新加载所有 Gradle 项目”时,您描述的错误就会消失。

注释 buildSrc/settings.gradle 文件中的 rootProject.name=... 行也可以。有趣的是,稍后取消注释该行(并重新加载 Gradle 配置)是可能的,而不会破坏 IntelliJ 配置。所以我想这应该是你的解决办法。

我认为您的构建配置是正确的。这听起来像是 IntelliJ 的 Gradle 支持中的错误。

关于kotlin - 使用 gradle 约定插件设置 kotlin jvmTarget 选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65087645/

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