你好我有这样的结构。
parent.pom
|-alpha.pom
|-beta.pom
在beta中我对alpha有依赖,在beta测试中我有一个对alpha src / test / java中的类的引用
然而,当我运行beta测试时,它似乎找不到alpha文件。
该类本身正在实现src/main/java
中的文件,因此它类似于FooBarFactoryForTest implements FooBarFactory
。当我在beta测试中new FooBarFactoryForTest()
时,它无法找到FooBarFactoryForTest
同样的结构也适用于alpha中的测试。
有任何想法或建议吗?
答案 0 :(得分:1)
那是因为默认情况下,测试类没有打包在任何项目中,更不用说你的alpha
项目了。如果您打开工作区分辨率功能,它可能会在您的日食中起作用。
要使其与Maven
一起使用,请考虑在alpha
中创建仅包含测试类的测试jar,并在beta
中添加为依赖项。
阅读:https://maven.apache.org/plugins/maven-jar-plugin/examples/create-test-jar.html
你可以制作一个包含你的测试类和的jar 资源。
<project> ... <build> <plugins> ... <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>2.6</version> <executions> <execution> <goals> <goal>test-jar</goal> </goals> </execution> </executions> </plugin> ... </plugins> </build> ... </project>
要在其他项目中重用此工件,您必须声明此项 依赖于类型test-jar:
<project> ... <dependencies> <dependency> <groupId>groupId</groupId> <artifactId>artifactId</artifactId> <type>test-jar</type> <version>version</version> <scope>test</scope> </dependency> </dependencies> ... </project>
注意:这个解决方案的缺点是你没有得到 自动传递测试范围的依赖项。 Maven只解决了 编译时依赖项,因此您必须添加所有其他依赖项 需要手动编写测试范围的依赖项。