kotlin - 使用 gradle 约定插件设置 kotlin jvmTarget 选项
问题描述
使用Gradle 约定插件在子项目之间共享通用配置,设置 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 built with JVM target 1.6. Please specify proper '-jvm-target' option
。在根项目中,我看不到警告,仅在子项目中。构建和运行项目根本不会产生任何问题(或警告)。
示例:https ://github.com/nieldw/IntelliJ_Gradle_Convention_Plugin_Issue
解决方案
推荐阅读
- python - 如何在 Python 中从同一个字符串中提取多个名称
- r - 收到警告:在 R 中的 LDA 预测中,«'newdata' 有 150 行,但发现的变量有 350 行»
- python - 使用 numpy 的变量之间的相关性
- android - 等到 firebase 获取数据以继续(Kotlin)
- c++ - C++ - 使用 strcmp 比较哪个名称按字母顺序排在第一位
- flutter - 如何在颤动中压缩或减小 gif 文件的大小?
- python - 在单变量时间序列建模中生成观测值
- git - 同一个域,多个没有 ssh 的 git 帐户
- c# - 为什么一个物体在另一个物体下的孩子比例不一样?以及如何将对象缩放为相同大小?
- html - jquery 3.5.1 移动 css 格式未显示在带有 vs 代码的实时服务器预览中