2

在 Maven 测试范围内运行时,如何排除提供范围内的依赖项?我有一个不寻常的用例,我需要排除特定提供的实现并在测试用例中将其替换为另一个。似乎 Maven 测试也总是包含其他范围,但在我的情况下,我想做一些例外。我该怎么做呢?

4

2 回答 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 回答