有两个java项目A和B,构建引擎是gradle。
这是一个多项目,A取决于B
A:build.gradle
...
dependencies {
compile project (':B')
}
...
B在src/main/java
中包含核心代码,在src/test/java
中包含测试代码。
同样在src/test/java
中的是一些测试基础设施类,如加载测试数据。
gradle :B:test
工作正常
A-Project中的测试使用来自B-Project的测试基础设施类,这对于eclipse是好的,但对于gradle则没有。因为对B-Project的构建jar文件依赖仅包括来自src/main/java
的类。
我们得到错误:
com.aaa.SomeClassFromAAAA.java:42: error: cannot find symbol
import com.bbb.InfrastructureTestClassFromBBB;
解决方案是什么?
答案 0 :(得分:0)
这在Gradle论坛here上讨论。我们的想法是使用您的测试类构建JAR,并使其对您的A项目可见。还有一些注意事项说明为什么IDE难以实现。
另一种方法是将测试基础架构类移动到另一个项目的主要源中。这假设他们不依赖于A的主要来源。您可以在Gradle的代码库(https://github.com/gradle/gradle/tree/master/subprojects中的int*-test*
文件夹)中看到类似内容。