繁体   English   中英

为什么IntelliJ Idea无法从另一个Kotlin模块中找到Maven依赖关系?

[英]Why doesn't IntelliJ Idea find Maven dependencies from another Kotlin module?

想象一下,我有两个基于Kotlin代码的基于Maven的项目prjAprjB

Test类SomeTestprjA引用函数中定义prjB

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

当我

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

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

IntelliJ Idea中的错误

为什么? 我该如何解决?

笔记:

  1. 默认情况下,Kotlin类是公开可见的。 prjB mvn install期间,我没有任何错误。
  2. Maven存储库包含prjB工件,并且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>

是有关测试依赖关系的示例。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM