我有一个混合Java和Scala代码的Maven项目。我想使用位于scala测试文件夹中的辅助类进行Java测试。文件树如下所示,省略了包:
+ test/
+ java/...
- SomeTest.java
+ scala/...
- Aux.scala
- OtherTest.scala
我想从Aux.scala
导入代码,以便在SomeTest.java
类中使用。它在我的IDE中工作正常,其中所有文件夹都标记为测试文件夹。但是,当在Maven中构建此项目时,我从Java编译器中收到导入错误。
如何配置Maven以使用Scala测试代码进行Java测试?
答案 0 :(得分:3)
为了在Java测试 - 编译阶段解决对Scala类的依赖性,您必须将testCompile
的{{1}}目标绑定到scala-maven-plugin
阶段。这样,在编译Java测试类时已经编译了Scala类。
以下代码段可以解决这个问题:
process-test-resources
混合Java / Scala项目的<plugin>
<groupId>net.alchim31.maven</groupId>
<artifactId>scala-maven-plugin</artifactId>
<version>3.1.4</version>
<executions>
<!-- Run scala compiler in the process-test-resources phase, so that dependencies on
scala classes can be resolved later in the (Java) test-compile phase -->
<execution>
<id>scala-test-compile</id>
<phase>process-test-resources</phase>
<goals>
<goal>testCompile</goal>
</goals>
</execution>
</executions>
</plugin>
的完整构建元素如下所示:
pom.xml