gpt4 book ai didi

java - 在 Java 项目中使用 Kotlin 库作为依赖项

转载 作者:太空宇宙 更新时间:2023-11-04 10:13:09 27 4
gpt4 key购买 nike

我有一个库项目,它为其他项目提供共享功能。实现是用 Kotlin 编写的。不过,我已确保库的公共(public)接口(interface)不使用 Kotlin 提供的任何类。

如果我们将此库作为依赖项添加到纯 Java 项目中,它会间接引入 kotlin-stdlibkotlin-runtime。 Kotlin-stdlib 中的类现在可以潜在地(但错误地)用在纯 Java 的消费者项目中。

有没有办法防止这种类型的泄漏?我能想到的一些选项:

  • 在 Maven 中将 kotlin-stdlib-* 标记为 provided: 这会在运行时导致任何问题吗? (ClassNotFoundException 等)

  • 着色 + 重新定位 kotlin-stdlib-* 和/或 kotlin-runtime: 通过着色,我预见到如果我们依赖多个 Kotlin 库项目会出现问题。另外,我不确定这是否真的会隐藏 Kotlin 类型。

注意:问题Using a kotlin library in java code不适用于此处(误导性标题)。我特别避免这种情况。

最佳答案

使用 implementation 关键字声明您的库依赖项还不足以不公开它们吗?如所述here 我们使用实现依赖配置,这样我们就不会通过 API 公开任何 Kotlin 标准库。这具有架构和性能优势。

关于java - 在 Java 项目中使用 Kotlin 库作为依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52070159/

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