我有一个包含一些测试的项目,它所做的只是创建一个由其他项目运行的test-jar
。它取决于另一个神器,我们称之为工件X
然后有多个其他项目使用test-jar
maven-surefire-plugin
我有多个工件X
的实现,我想要做的是能够使用我想要的实现运行这些测试,而不是X
所以例如:
项目A
中的我想使用实现A
B
中的我想使用实现B
这似乎不太可能,因为一旦生成test-jar
,它就会在其中加上硬件编码X
所以我对任何其他解决方案持开放态度
编辑:
额外信息:
生成测试的项目的pom文件:
用于生成test-jar
<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>
工件X
依赖:
<dependency>
<groupId>com.conztanz</groupId>
<artifactId>X</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
运行测试的其中一个项目(项目A
)的pom文件:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.15</version>
<configuration>
<dependenciesToScan>
<dependency>testJar</dependency>
</dependenciesToScan>
</configuration>
</plugin>
</plugins>
</build>
理想情况下,我想做的是通过它自己的实现来做一些告诉项目A
到Override
工件X
的事情
我希望现在更有意义
答案 0 :(得分:1)
我认为您正在寻找名为provided
的范围。
依赖关系看起来像这样:
<dependency>
<groupId>com.conztanz</groupId>
<artifactId>X</artifactId>
<version>1.0-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
这告诉Maven:&#34;嘿,我需要这个来编译,但不要将它包含在目标输出中,因为容器(或其他东西)将提供jar本身。&#34; < / p>