gpt4 book ai didi

kotlin - Gradle 6.4、Kotlin 和 JPMS

转载 作者:行者123 更新时间:2023-12-03 05:04:36 25 4
gpt4 key购买 nike

所以,6.4(终于)出来了,并且有 JPMS support

迫不及待地想试一试,我开始修改我们的一个项目以便使用它。

jjohannes 在他的 repo 之一上有一个 (kotlin) 示例

我试图将重要的内容复制/粘贴到我们的项目中 here

但不幸的是我没有成功。

每当我尝试运行时,我总是会得到:

C:\Users\elect\IdeaProjects\kotlin-unsigned\src\main\java\module-info.java:4: error: module not found: kotlin.stdlib.jdk8 requires kotlin.stdlib.jdk8;



引用 module-info.java :

module com.github.kotlin_graphics.kotlin_unsigned {

// requires kotlin.stdlib;
requires kotlin.stdlib.jdk8; // error

exports unsigned;
}
stdlibstdlib-jdk8变化不大

我究竟做错了什么?

最佳答案

我检查了你的 repo 。

您将需要这些修复程序。

  • 已添加 java插入。
  • plugins {
    kotlin("jvm") version "1.3.72"
    java
    }

    java {
    modularity.inferModulePath.set(true)
    }
  • 使用kotlin("stdlib")在所有 3 个地方(2 个在 build.gradle.kts 和 1 个在 module-info.java)。
  • dependencies {
    implementation(kotlin("stdlib"))
    ...
    components { withModule<ModularKotlinRule>(kotlin("stdlib")) }
    }
    module com.github.kotlin_graphics.kotlin_unsigned {

    requires kotlin.stdlib;
    // requires kotlin.stdlib.jdk8;

    exports unsigned;
    }

    对于 kotlin("stdlib-jdk8") ,您需要在 kotlin("stdlib") 旁边添加它
    dependencies {
    implementation(kotlin("stdlib"))
    implementation(kotlin("stdlib-jdk8"))
    ...
    components { withModule<ModularKotlinRule>(kotlin("stdlib")) }
    components { withModule<ModularKotlinRule>(kotlin("stdlib-jdk8")) }
    }

    然后,您的 module-info.java
    module com.github.kotlin_graphics.kotlin_unsigned {

    // requires kotlin.stdlib;
    requires kotlin.stdlib.jdk8;

    exports unsigned;
    }
    ./gradlew build为我成功 build 。
    我还添加了缺少的测试依赖项:
    testImplementation("io.kotlintest:kotlintest-runner-junit5:$kotlintest_version")

    更新:列出两个 stdlibstdlb-jdk8

    关于kotlin - Gradle 6.4、Kotlin 和 JPMS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61638287/

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