某天将项目 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 编译问题引发的案例的更多相关文章

  1. 【Kotlin】初识Kotlin(二)

    [Kotlin]初识Kotlin(二) 1.Kotlin的流程控制 流程控制是一门语言中最重要的部分之一,从最经典的if...else...,到之后的switch,再到循环控制的for循环和while ...

  2. 【Kotlin】初识Kotlin之面向对象

    [Kotlin]初识Kotlin之面向对象 1.类 在Kotlin中,类用关键字class来定义 如果一个类具有类体,那么需要使用{ }来写类体内容,如果不需要类体,那么只需要定义类名就可以了 // ...

  3. 在相同的主机上创建一个duplicate数据库

    在相同的主机上创建一个duplicate数据库 source db:dbtest auxiliary db:dupdb duplicate database会自动分配一个新的DBID要确保auxili ...

  4. 记一个社交APP的开发过程——基础架构选型(转自一位大哥)

    记一个社交APP的开发过程——基础架构选型 目录[-] 基本产品形态 技术选型 最近两周在忙于开发一个社交App,因为之前做过一点儿社交方面的东西,就被拉去做API后端了,一个人头一次完整的去搭这么一 ...

  5. 初试kotlin:用Kotlin开发桌面/CommandLine 工具

    既然kotlin是google和jetbrain联合搞的,开发环境不用说了肯定是Intellij Idea了. 先创建一个kotlin项目. 先来一个HelloWorld package com.xi ...

  6. 序章:为什么学习使用kotlin、及kotlin的一些碎碎念

    为什么使用kotlin? 当然是因为项目目前的开发语言是kotlin啊! 一方面是想能够尽快适应项目,另一方面,kotlin这门语言独特的语法,确实很吸引我,也让我意识到java代码在某些程度上的繁琐 ...

  7. Java调用Kotlin事项及Kotlin反射初步

    继续来研究Java调用Kotlin的一些东东. @Throws注解: 我们知道在Kotlin中是不存在checked exception的,而在Java中是存在的,那..如果从Java来调用Kotli ...

  8. [Kotlin Tutorials 19] Kotlin Flows, SharedFlow and StateFlow in Android

    Kotlin Flows 本文包含的内容: Flow是什么, 基本概念和用法. Flow的不同类型, StateFlow和SharedFlow比较. Flow在Android中的使用 安全收集. 操作 ...

  9. 开博第二篇:记一个利用JavaScript,编写PS脚本,开发图片量产工具

    背景:身在一个有实业的电商公司,设计部的妹子们总是会有做不完的商品图片,当然了,要是做点有技术含量的美化工作也罢,但是最近她们很是无聊,总是要做一些重复性的工作,就比如如题所说的,图片量产,量产什么呢 ...

  10. 记一个常见的ms sql server中取第N条记录的方法

    前言 好好学习,天天向上. 正文 好像也是一个不难的问题,刚视频里看到的,就记一下吧. 下面是表中原始的数据结构,做了一个倒叙排序: select * from Employee order by S ...

随机推荐

  1. [转帖]SPEC-cpu2006的详细使用一键安装、手动安装。

    一.SPEC-cpu2006简介 SPEC CPU 2006 benchmark是SPEC新一代的行业标准化的CPU测试基准套件.重点测试系统的处理器,内存子系统和编译器. 说明:由于spec2006 ...

  2. Mark 一下 Redisson 可能需要升级版本

    貌似有bug 我们高并发的情况下貌似遇到了 https://github.com/redisson/redisson/issues/2299

  3. 【记录一个问题】VictoriaMetrics的vmstorage因为慢查询导致大量写入失败

    作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 见上图. 一直以为vmstorage中的查询协程会让位于写 ...

  4. gin启动https支持

    gin是一个使用Go语言开发的Web框架,具有运行速度快,分组的路由器,良好的崩溃捕获和错误处理,支持中间件等. 在工作中有时候需要支持https服务,gin可以通过中间件的方式来提供对https的支 ...

  5. OpenIM (Open-Source Instant Messaging) Mac Deployment Guide

    This guide provides step-by-step instructions for deploying OpenIM on a Mac, including both source c ...

  6. 热门数据集提供【MNIST、鸢尾花、猫狗、CIFAR10、vegetables、Ox-Flowers17、pascalvoc】

    热门数据集提供[MNIST.鸢尾花.猫狗.CIFAR10.vegetables.Ox-Flowers17.pascalvoc] 简介: 鸢尾花数据集: 约150条数据,每条样本4个属性,共3个类别 M ...

  7. 5个前端开源项目带你在Web上体验Windows

    本文来分享五个 yyds 的开源项目,这些项目把 Windows 带到了 Web 平台上.让我们一起感受这些项目带来的回忆和创新,重温 Windows 93.98.XP 和 7 的经典界面,甚至探索现 ...

  8. 【双指针】双指针算法详解两道经典OJ【力扣27,力扣26,力扣38】超详细算法教程

    [双指针]双指针算法详解两道经典OJ[力扣27,力扣26,力扣38]超详细算法教程 今天又又到了我们刷力扣题的时间啦! 今天博主给大家带来的三道题是: 27. 移除元素 26. 删除有序数组中的重复项 ...

  9. Navicat 15 for MySQL 破解【我亲测可用】

    1.去官网下载正版 https://www.navicat.com.cn/ 2.破解下载:https://files-cdn.cnblogs.com/files/del88/NavicatKeygen ...

  10. 程序员减少BUG的两个小妙招!

    原创:陶朱公Boy(微信公众号ID:taozhugongboy),欢迎分享,转载请保留出处. ​ 点评: 我们说衡量一个程序员水平的高低往往有很多因素,但有一个因素至关重要即代码质量. 如果程序员写的 ...