maven - IntelliJ IDEA - Kotlin 项目中未加载 Kotlin Maven 依赖项
问题描述
在使用 maven 3、IntelliJ IDEA 的最新版本、java 8 和 kotlin 1.5 时,我遇到了一些奇怪的行为:
- 我有一个 Kotlin jar 用作本地文件系统中的依赖项。
- 在创建新的 Java 项目、添加 maven 框架并将依赖项(具有系统范围)添加到我的 POM 时,它会正确加载到我的 IntelliJ 类路径中,我可以在我的代码中使用它。
- 在创建 Kotlin 项目时,添加 maven 框架并在 java 项目中添加具有相同 POM 的依赖项时,IntelliJ 不会加载依赖项。奇怪的是,它出现在“外部库”下,我只是无法解析对项目中依赖类的任何导入。
mvn dependency:tree
这两个项目都打印了我的 kotlin 依赖项,这意味着 maven 找到了我的依赖项,但 IntelliJ 没有。
这是我正在使用的 POM:https ://pastebin.com/bAFkaYDE
如何让 kotlin IntelliJ IDEA 项目注意到我的 maven 依赖项 kotlin jar?
更新:我尝试过同样的测试,但使用 gradle java/kotlin 项目,结果完全相同。这是 IntelliJ IDEA 没有专门从 maven 和 gradle 项目中获取基于 kotlin 的依赖 jar 的问题。
解决方案
经过多次调试,我发现这是因为我的库中捆绑了 kotlin 运行时依赖项。因此,IntelliJ 无法从任一构建系统加载依赖项,但不会在任何地方输出。这就是为什么 Maven/Gradle 仍然能够构建项目,但 IntelliJ 无法解决依赖关系的原因。
推荐阅读
- javascript - node js + neo4j 的奇怪反应
- css - SassC 错误 - 我更改什么都没关系,我仍然收到 Invalid CSS 消息
- javascript - 使用 lodash 从对象数组中获取值
- google-cloud-router - GCP 专用互连 MTU
- python - 无法使用 pip 安装新的 tflite-support
- swift - Swift 语句可以分多行吗?
- c - 是否可以从终端使用基于 GUI 的文本编辑器(例如 Eclipse)?
- arduino - Ai-Thinker ESP32-CAM:将引脚 14 或 15 设置为输出后使用引脚 13 作为 INPUT_PULLDOWN 时出现问题
- swift - 在不同的视图控制器中调用函数有困难
- java - “System.out.println(a+"\n")”和“System.out.println(a); System.out.println();”有什么不同吗?