想象一下,我有两个基于Maven的项目,包含Kotlin代码,prjA和prjB。
prjA
中的测试班SomeTest引用prjB
中定义的class和function:
class SomeTest {
@Test
fun prjACanReferencePrjBStuff() {
val valRes = ValidationResult()
val correctValRes = createCorrectValidationResult()
}
}
当我
mvn clean install
,prjA
的依赖关系
mvn clean install
,我收到错误 - Maven找不到prjB
中定义的类:
为什么呢?我该如何解决?
备注:
mvn install
prjB
期间我没有收到任何错误。 prjB
个工件,IntelliJ Idea引用了正确的Maven存储库。 prjA
时,构建成功。 更新1:我需要一个解决方案,这样我就不仅可以在测试中使用prjB
。
更新2:如果我用Java重写prjB
中的Kotlin类,那么一切都运行得很好。
答案 0 :(得分:1)
如果您需要来自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是关于测试依赖的示例。