在 Maven 测试范围内运行时,如何排除提供范围内的依赖项?我有一个不寻常的用例,我需要排除特定提供的实现并在测试用例中将其替换为另一个。似乎 Maven 测试也总是包含其他范围,但在我的情况下,我想做一些例外。我该怎么做呢?
问问题
920 次
2 回答
2
在某些情况下,您需要在不同的模块中运行测试。这可能是您在这里所需要的。它允许您的测试使用不同的依赖项、属性和 Java 版本等。
于 2012-09-07T08:28:16.457 回答
2
我认为,最简单的方法是为您要使用的每个依赖项创建 2 个配置文件。您可以activateByDefault 具有提供范围的那个。
它可能看起来像这样:
<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
于 2012-09-07T08:38:52.643 回答