我在 Maven 中创建了一个库,可以通过实现一些接口来扩展它。为了测试默认实现,我编写了一些当前存在于src/test/java
.
但是,我认为如果他们想测试他们的定制,它们可能对图书馆的用户有用。
那么我怎样才能使它们可用呢?将它们移动到src/main
需要使 hamcrest 成为运行时依赖项,我不希望这样。
我在 Maven 中创建了一个库,可以通过实现一些接口来扩展它。为了测试默认实现,我编写了一些当前存在于src/test/java
.
但是,我认为如果他们想测试他们的定制,它们可能对图书馆的用户有用。
那么我怎样才能使它们可用呢?将它们移动到src/main
需要使 hamcrest 成为运行时依赖项,我不希望这样。
有一种方法可以使用命令“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>
然后其他项目可以引用测试jar如下:
<dependency>
<groupId>com.myco.app</groupId>
<artifactId>foo</artifactId>
<version>1.0-SNAPSHOT</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
如您所说,将其移至新项目中的 src/main 。让该项目仅用于测试依赖项,并且不会污染模块的类路径。
听起来您需要将它们移至自己的项目并发布。从那里您可以在原始项目中确定您想要的范围。