从 Maven 项目发布测试实用程序

Cep*_*pod 2 java maven-2 unit-testing hamcrest

我在 Maven 中创建了一个库,可以通过实现一些接口来扩展它。为了测试默认实现,我编写了一些当前位于src/test/java.

但是,我认为如果库的用户想要测试其自定义,它们可能会很有用。

那么我怎样才能让它们可用呢?将它们移动到src/main需要使 hamcrest 成为运行时依赖项,但我不希望这样做。

Mik*_*eck 5

有一种方法可以使用命令“mvn jar:test-jar”创建测试 jar 并将其安装到存储库中。然后,其他项目可以使用依赖项块中的 test-jar 修饰符来引用此 jar。

如果您想将此 jar 构建并安装为正常“mvn install”构建的一部分,请将以下插件配置添加到您的 pom 中:

来自http://maven.apache.org/guides/mini/guide-attached-tests.html

<project>
  <build>
    <plugins>
     <plugin>
       <groupId>org.apache.maven.plugins</groupId>
       <artifactId>maven-jar-plugin</artifactId>
       <version>2.2</version>
       <executions>
         <execution>
           <goals>
             <goal>test-jar</goal>
           </goals>
         </execution>
       </executions>
     </plugin>
    </plugins>
  </build>
</project>
Run Code Online (Sandbox Code Playgroud)

然后其他项目就可以引用该测试jar,如下:

<dependency>
  <groupId>com.myco.app</groupId>
  <artifactId>foo</artifactId>
  <version>1.0-SNAPSHOT</version>
  <type>test-jar</type>
  <scope>test</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)