gpt4 book ai didi

java - 为什么 IntelliJ Idea 找不到另一个 Kotlin 模块的 Maven 依赖项?

转载 作者:行者123 更新时间:2023-12-01 09:51:38 25 4
gpt4 key购买 nike

假设我有两个基于 Maven 的项目,其中包含 Kotlin 代码,prjAprjB .

测试类SomeTestprjA 中引用 classfunctionprjB 中定义:

class SomeTest {
@Test
fun prjACanReferencePrjBStuff() {
val valRes = ValidationResult()
val correctValRes = createCorrectValidationResult()
}
}

当我

  1. prjB中运行mvn clean install ,
  2. 更新 IntelliJ Idea 中 prjA 的依赖项并
  3. prjA中运行mvn clean install ,

我收到错误 - Maven 找不到 prjB 中定义的类:

Error in IntelliJ Idea

为什么?我该如何修复它?

注释:

  1. Kotlin 类是 publicly visible默认情况下。我在 prjBmvn install 期间没有收到任何错误。
  2. Maven 存储库包含 prjB Artifact ,IntelliJ Idea 引用正确的 Maven 存储库。
  3. 当我尝试从命令行构建 prjA 时,构建成功。
  4. 使 IntelliJ Idea 缓存失效并重建项目没有帮助。

更新 1:我需要一个解决方案,它允许我不仅在测试中使用 prjB

更新 2:如果我用 Java 重写 prjB 中的 Kotlin 类,一切都会正常工作。

最佳答案

如果您需要 prjB 中的常规类,请将主要依赖项添加到 prjA。如果您需要 prjB 中的测试类,请将测试依赖项添加到 prjA。

将主要依赖项添加到另一个模块:

<project>
...
<dependencies>
<dependency>
<groupId>com.your.group</groupId>
<artifactId>prjB</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
...
</project>

将测试依赖项添加到另一个模块:

<project>
...
<dependencies>
<dependency>
<groupId>com.your.group</groupId>
<artifactId>prjB</artifactId>
<version>1.0-SNAPSHOT</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
</dependencies>
...
</project>

Here是一个关于测试依赖性的示例。

关于java - 为什么 IntelliJ Idea 找不到另一个 Kotlin 模块的 Maven 依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37559779/

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