我有一个模块作为框架的一部分,为其他模块提供通用功能。我创建了一个类(UtilitiesForTesting),它提供了一些仅在我的测试中使用的工具,因此它存储在模块的测试部分中。
该模块具有以下结构:
project
-src
-main
-java
-com
-company
-product
+Foo
-test
-java
-com
-company
-product
+FooTest
-utility
+UtilitiesForTesting
UtilitiesForTesting类在项目中是可见的,但是当我编译它时,生成的jar不包含任何测试类。
现在我想在其他模块中使用这些模块,因为我需要这个常用功能,但我也想使用测试实用程序。
我不想在/ main部分放置UtilitiesForTesting,因为我不想在生产代码中允许使用此类,仅在测试中使用。
我想要一个模块,为其他模块提供生产类,并为同一个模块测试util,但是限制使用/ main部分中的测试实用程序。
有没有办法在其他模块中使用模块的测试范围类?
答案 0 :(得分:2)
在你的pom.xml中,在maven-jar-plugin下,添加以下目标。
`<goal>test-jar</goal>`
src / test / java下的所有文件都被编译并捆绑到artifact-test.jar中。
在另一个模块中,如果您想使用此工件测试jar,请在依赖项标记中使用以下配置。
`<artifactId>artifactid</artifactId> <type>test-jar</type>'