2

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

但是,我认为如果他们想测试他们的定制,它们可能对图书馆的用户有用。

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

4

3 回答 3

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>

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

<dependency>
  <groupId>com.myco.app</groupId>
  <artifactId>foo</artifactId>
  <version>1.0-SNAPSHOT</version>
  <type>test-jar</type>
  <scope>test</scope>
</dependency>
于 2010-12-14T23:11:33.890 回答
2

如您所说,将其移至新项目中的 src/main 。让该项目仅用于测试依赖项,并且不会污染模块的类路径。

于 2010-12-14T23:08:50.760 回答
1

听起来您需要将它们移至自己的项目并发布。从那里您可以在原始项目中确定您想要的范围。

于 2010-12-14T22:16:36.300 回答