记一个 Duplicate class kotlin-stblib vs kotlin-stdlib-jdk7/8 编译问题引发的案例
某天将项目 kotlin 版本升级到了 1.8.0 ,然后编译报错了,
Duplicate class kotlin-stblib vs kotlin-stdlib-jdk7/8
然后开始寻求解决方案...
Duplicate class kotlin-stblib vs kotlin-stdlib-jdk7/8
kotlin-stdlib
kotlin 1.8.0 基于 JVM 1.8 编译,不再支持 JVM 1.6 和 1.7。后续不用单独在build.gradle 依赖 kotlin-stdlib-jdk7 and kotlin-stdlib-jdk8。
If you have explicitly declared kotlin-stdlib-jdk7 and kotlin-stdlib-jdk8 as dependencies in your build scripts, then you should replace them with kotlin-stdlib.
解决 Duplicate class 的编译问题
- 方法一
使用 kotlin-bom 清单
implementation(platform("org.jetbrains.kotlin:kotlin-bom:1.8.0"))
- 方法二
强制把 kotlin-stdlib-jdk7 和 kotlin-stdlib-jdk8 升级到 1.8.0
dependencies {
constraints {
add("implementation", "org.jetbrains.kotlin:kotlin-stdlib-jdk7") {
version {
require("1.8.0")
}
}
add("implementation", "org.jetbrains.kotlin:kotlin-stdlib-jdk8") {
version {
require("1.8.0")
}
}
}
}
- 方法三
手动移除 kotlin-stdlib,不推荐
dependencies {
implementation("com.example:lib:1.0") {
exclude group: "org.jetbrains.kotlin", module: "kotlin-stdlib"
}
}
参考文档:https://kotlinlang.org/docs/gradle-configure-project.html#other-ways-to-align-versions
kotlin-bom 库版本清单表
org.jetbrains.kotlin » kotlin-stdlib
org.jetbrains.kotlin » kotlin-stdlib-jdk7
org.jetbrains.kotlin » kotlin-stdlib-jdk8
org.jetbrains.kotlin » kotlin-stdlib-js
org.jetbrains.kotlin » kotlin-stdlib-common
org.jetbrains.kotlin » kotlin-reflect
org.jetbrains.kotlin » kotlin-osgi-bundle
org.jetbrains.kotlin » kotlin-test
org.jetbrains.kotlin » kotlin-test-junit
org.jetbrains.kotlin » kotlin-test-junit5
org.jetbrains.kotlin » kotlin-test-testng
org.jetbrains.kotlin » kotlin-test-js
org.jetbrains.kotlin » kotlin-test-common
org.jetbrains.kotlin » kotlin-test-annotations-common
org.jetbrains.kotlin » kotlin-main-kts
org.jetbrains.kotlin » kotlin-script-runtime
org.jetbrains.kotlin » kotlin-script-util
org.jetbrains.kotlin » kotlin-scripting-common
org.jetbrains.kotlin » kotlin-scripting-jvm
org.jetbrains.kotlin » kotlin-scripting-jvm-host
org.jetbrains.kotlin » kotlin-scripting-ide-services
org.jetbrains.kotlin » kotlin-compiler
org.jetbrains.kotlin » kotlin-compiler-embeddable
org.jetbrains.kotlin » kotlin-daemon-client
具体版本对应关系:
kotlin-bom 库版本对应表查询:https://mvnrepository.com/artifact/org.jetbrains.kotlin/kotlin-bom
记一个 Duplicate class kotlin-stblib vs kotlin-stdlib-jdk7/8 编译问题引发的案例的更多相关文章
- 【Kotlin】初识Kotlin(二)
[Kotlin]初识Kotlin(二) 1.Kotlin的流程控制 流程控制是一门语言中最重要的部分之一,从最经典的if...else...,到之后的switch,再到循环控制的for循环和while ...
- 【Kotlin】初识Kotlin之面向对象
[Kotlin]初识Kotlin之面向对象 1.类 在Kotlin中,类用关键字class来定义 如果一个类具有类体,那么需要使用{ }来写类体内容,如果不需要类体,那么只需要定义类名就可以了 // ...
- 在相同的主机上创建一个duplicate数据库
在相同的主机上创建一个duplicate数据库 source db:dbtest auxiliary db:dupdb duplicate database会自动分配一个新的DBID要确保auxili ...
- 记一个社交APP的开发过程——基础架构选型(转自一位大哥)
记一个社交APP的开发过程——基础架构选型 目录[-] 基本产品形态 技术选型 最近两周在忙于开发一个社交App,因为之前做过一点儿社交方面的东西,就被拉去做API后端了,一个人头一次完整的去搭这么一 ...
- 初试kotlin:用Kotlin开发桌面/CommandLine 工具
既然kotlin是google和jetbrain联合搞的,开发环境不用说了肯定是Intellij Idea了. 先创建一个kotlin项目. 先来一个HelloWorld package com.xi ...
- 序章:为什么学习使用kotlin、及kotlin的一些碎碎念
为什么使用kotlin? 当然是因为项目目前的开发语言是kotlin啊! 一方面是想能够尽快适应项目,另一方面,kotlin这门语言独特的语法,确实很吸引我,也让我意识到java代码在某些程度上的繁琐 ...
- Java调用Kotlin事项及Kotlin反射初步
继续来研究Java调用Kotlin的一些东东. @Throws注解: 我们知道在Kotlin中是不存在checked exception的,而在Java中是存在的,那..如果从Java来调用Kotli ...
- [Kotlin Tutorials 19] Kotlin Flows, SharedFlow and StateFlow in Android
Kotlin Flows 本文包含的内容: Flow是什么, 基本概念和用法. Flow的不同类型, StateFlow和SharedFlow比较. Flow在Android中的使用 安全收集. 操作 ...
- 开博第二篇:记一个利用JavaScript,编写PS脚本,开发图片量产工具
背景:身在一个有实业的电商公司,设计部的妹子们总是会有做不完的商品图片,当然了,要是做点有技术含量的美化工作也罢,但是最近她们很是无聊,总是要做一些重复性的工作,就比如如题所说的,图片量产,量产什么呢 ...
- 记一个常见的ms sql server中取第N条记录的方法
前言 好好学习,天天向上. 正文 好像也是一个不难的问题,刚视频里看到的,就记一下吧. 下面是表中原始的数据结构,做了一个倒叙排序: select * from Employee order by S ...
随机推荐
- [转帖]centos7 firewall-cmd主机之间端口转发
目录 1. firewalld 1.1 firewalld守护进程 1.2 控制端口/服务 1.3 伪装IP 1.4 端口转发 2. 案例 2.1 配置ServerA 2.2 安装nginx测试 (可 ...
- [官网]Apache Log4j2 最新版安全提示 2.17.0
https://logging.apache.org/log4j/2.x/ 最近一个周的时间 log4j2 从 2.14 跃升到了2.17 还在不停的升级 安全问题正是焦头烂额 free softwa ...
- Govulncheck v1.0.0 发布了!
原文在这里 原文作者:Julie Qiu, for the Go security team 发布于 13 July 2023 我们很高兴地宣布,govulncheck v1.0.0 已经发布,同时还 ...
- 【JVM】运行时内存分配
程序计数器 用于标识线程执行到了字节码文件(class文件)的哪一行,当执行native方法时,值为undefined,各个线程私有 Java虚拟机栈 每个线程独有,每个方法执行时会创建一个栈帧,用于 ...
- 应用实践:Paddle分类模型大集成者[PaddleHub、Finetune、prompt]
相关文章: Paddlenlp之UIE模型实战实体抽取任务[打车数据.快递单] Paddlenlp之UIE分类模型[以情感倾向分析新闻分类为例]含智能标注方案) 项目连接: 应用实践:分类模型大集成者 ...
- 数据挖掘机器学习[七]---2021研究生数学建模B题空气质量预报二次建模求解过程:基于Stacking机器学习混合模型的空气质量预测{含码源+pdf文章}
相关文章: 特征工程详解及实战项目[参考] 数据挖掘---汽车车交易价格预测[一](测评指标:EDA) 数据挖掘机器学习---汽车交易价格预测详细版本[二]{EDA-数据探索性分析} 数据挖掘机器学习 ...
- win10 局域网共享文件创建方法
win10 局域网共享文件创建方法 1.先在桌面文件夹,我命名为"xxxx",然后将文件放在该文件里. 2.右击共享文件夹,找到属性选项,点击"属性".再点击& ...
- LyScript 通过PEB结构解析堆基址
LyScript中默认并没有提供获取进程堆基址的函数,不过却提供了获取PEB/TEB的函数,以PEB获取为例,可以调用dbg.get_peb_address(local_pid)用户传入当前进程的PI ...
- html的input type=file
文件上传:https://www.zhangxinxu.com/wordpress/2015/11/html-input-type-file/ some与every的使用:https://blog.c ...
- Dart常用核心知识
Dart简述 Dart 是一个为全平台构建快速应用的客户端优化的编程语言,免费且开源. Dart是面向对象的.类定义的.单继承的语言.它的语法涵盖了多种语言的语法特性,如C,JavaScirpt, J ...