Maven 2 在Maven中共享测试代码
如何依赖Maven中另一个模块的测试代码 例如,我有两个模块:Maven 2 在Maven中共享测试代码,maven-2,testing,Maven 2,Testing,如何依赖Maven中另一个模块的测试代码 例如,我有两个模块: 基地 主要 我主要想要一个测试用例来扩展base中的一个基本测试类。这可能吗 更新:找到了一个,这涉及到创建一个测试jar。是的。。。只需将基本模块作为依赖项包含在Main中。如果您只继承测试代码,那么可以使用scope标记确保Maven在部署时不将代码包含在您的工件中。像这样的方法应该会奏效: <dependency> <groupId>BaseGroup</groupId>
- 基地
- 主要
更新:找到了一个,这涉及到创建一个测试jar。是的。。。只需将基本模块作为依赖项包含在Main中。如果您只继承测试代码,那么可以使用scope标记确保Maven在部署时不将代码包含在您的工件中。像这样的方法应该会奏效:
<dependency>
<groupId>BaseGroup</groupId>
<artifactId>Base</artifactId>
<version>0.1.0-SNAPSHOT</version>
<scope>test</scope>
</dependency>
基组
基础
0.1.0-SNAPSHOT
测试
我们解决了这个问题,我们制作了一个maven项目,测试代码为src/main/java,并向项目添加了以下依赖项:
<dependency>
<groupId>foo</groupId>
<artifactId>test-base</artifactId>
<version>1</version>
<scope>test</scope>
</dependency>
福
试验基地
1.
测试
感谢基本模块的建议。然而,我不想仅仅为了这个目的而创建一个新模块
在和中找到了可接受的答案。另见“”
这将使用创建来自src/test/java
的jar代码文件,以便带有测试的模块可以共享代码
<project>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<executions>
<execution>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
org.apache.maven.plugins
maven jar插件
2.4
试验罐
为了使用上面创建的附加测试JAR,只需使用指定的测试分类器指定对主工件的依赖:
<project>
...
<dependencies>
<dependency>
<groupId>com.myco.app</groupId>
<artifactId>foo</artifactId>
<version>1.0-SNAPSHOT</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
</dependencies>
...
</project>
...
com.myco.app
福
1.0-快照
试验罐
测试
...
我建议使用(另请参见:)。它更明确地告诉Maven您正在做什么(我发现m2eclipse和q4e都更喜欢它)
com.myco.app
福
1.0-快照
试验罐
测试
是的,那就行了,谢谢!请参阅下面我的评论,以获得我更喜欢的备选答案。我们也使用这种方法,这有点愚蠢,您被迫使用分类器或类型(对于大多数用户来说,这在Maven中几乎不是基本的)当你不需要JAR的时候,或者在本例中,你实际上只有非测试代码作为测试代码的基础。注意,使用testsIt可能会有问题,这对我非常有用,但我发现了一个问题:当我执行“install-Dmaven.test.skip=true”时,此外,还需要依赖性测试jar和进程fails@JaviPedrera即使我执行“mvn clean install-DskipTests=true”并且测试jar将被创建,它也对我有效。不errors@Allen您是否确保在打包jar时使用ServiceResultTransformer?否则,最终可能会导致服务文件相互覆盖。在那里你可以阅读更多关于它的信息。com.myco.app是否应该有一个单独的依赖项专门用于测试jar类型?还记得将测试jar添加到maven jar插件配置中:我第一次阅读这个答案时感到困惑。。。这实际上是因为它本身没有意义,你应该首先阅读下面的答案:这似乎是一个相当于下面被接受的答案组合的答案,实际上是下面更大答案的注释,现在在Maven网站上:
<dependency>
<groupId>com.myco.app</groupId>
<artifactId>foo</artifactId>
<version>1.0-SNAPSHOT</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>