使用Maven中的Java测试在test文件夹中共享Scala类

时间:2015-09-29 13:16:58

标签: java scala maven unit-testing

我有一个混合Java和Scala代码的Maven项目。我想使用位于scala测试文件夹中的辅助类进行Java测试。文件树如下所示,省略了包:

+ test/
  + java/...
    - SomeTest.java
  + scala/...
    - Aux.scala
    - OtherTest.scala

我想从Aux.scala导入代码,以便在SomeTest.java类中使用。它在我的IDE中工作正常,其中所有文件夹都标记为测试文件夹。但是,当在Maven中构建此项目时,我从Java编译器中收到导入错误。

如何配置Maven以使用Scala测试代码进行Java测试?

1 个答案:

答案 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