在Maven测试范围内运行时,如何排除提供范围内的依赖项?我有一个不寻常的用例,我需要排除一个特定的提供的实现,并在测试用例中将其替换为另一个。似乎Maven测试总是包括其他范围,但在我的情况下,我想做一些例外。我该怎么做?
答案 0 :(得分:2)
在某些情况下,您需要在其他模块中运行测试。这可能是你需要的。它允许您的测试使用不同的依赖项,属性和Java等版本。
答案 1 :(得分:2)
我认为,最简单的方法是为要使用的每个依赖项创建2个配置文件。您可以使用提供范围的那个激活BiDefault。
看起来像这样:
<profiles>
<profile>
<id>providedDependency</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<dependencies>
<dependency>[provided dependency information]</dependency>
</dependencies>
</profile>
<profile>
<id>testDependency</id>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
<dependencies>
<dependency>[test dependency information]</dependency>
</dependencies>
</profile>
</profiles>
进入测试模式时,取消激活提供的依赖关系并激活其他
mvn test -P!providedDependency,testDependency