gpt4 book ai didi

gradle - 带有 Kotlin 的 IntelliJ IDEA 无法访问另一个模块所需的类

转载 作者:行者123 更新时间:2023-12-02 13:22:27 25 4
gpt4 key购买 nike

我正在创建一个包含多个模块的新 Kotlin 项目,当我尝试从 IntelliJ IDEA 运行其中一个模块时出现问题。

为了让结构简单,我得到了 module Amodule B .module B配置并返回 log4j2 Logger实例。module A正在调用module B获取记录器的方法和使用记录器 在此之后直接。

当我从 module A 创建一个胖 jar 和启动方法时一切正常,日志记录正常,但是当我尝试启动 module A来自 IntelliJ IDEA 的方法我收到来自 Kotlin 的错误:

Error:(6, 29) Kotlin: Cannot access class 'org.apache.logging.log4j.Logger'. Check your module classpath for missing or conflicting dependencies

两个模块均使用 Gradle 和 module A 进行配置得到 module B作为依赖:
dependencies {
implementation(project(":moduleB"))
}

据我了解, 想法 应该能看懂 module B的要求并在执行使用 module B 的代码时自动加载它们, 不?

我错过了什么吗?

最佳答案

问题出在 log4j module B 中的声明.
最初,它被声明为:

implementation("org.apache.logging.log4j:log4j-api:2.11.1")

所以,这个依赖没有暴露给 module A .
改为:
compile("org.apache.logging.log4j:log4j-api:2.11.1")

不再产生错误。

奇怪的是,使用 api配置而不是 compile不起作用(尽管根据文档,这些是相同的配置)。看起来当前的 IDEA Gradle 插件不支持新的配置命名。

关于gradle - 带有 Kotlin 的 IntelliJ IDEA 无法访问另一个模块所需的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52802577/

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