在其他模块中使用来自测试范围的类

时间:2015-06-24 11:26:52

标签: java maven testing scope

我有一个模块作为框架的一部分,为其他模块提供通用功能。我创建了一个类(UtilitiesForTesting),它提供了一些仅在我的测试中使用的工具,因此它存储在模块的测试部分中。

该模块具有以下结构:

project
    -src
       -main
         -java
           -com
             -company
               -product
                 +Foo
       -test
         -java
           -com
             -company
               -product
                 +FooTest
               -utility
                 +UtilitiesForTesting

UtilitiesForTesting类在项目中是可见的,但是当我编译它时,生成的jar不包含任何测试类。

现在我想在其他模块中使用这些模块,因为我需要这个常用功能,但我也想使用测试实用程序。

我不想在/ main部分放置UtilitiesForTesting,因为我不想在生产代码中允许使用此类,仅在测试中使用。

我想要一个模块,为其他模块提供生产类,并为同一个模块测试util,但是限制使用/ main部分中的测试实用程序。

有没有办法在其他模块中使用模块的测试范围类?

1 个答案:

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