在Maven测试范围内运行时,如何排除提供范围中的依赖项?

时间:2012-09-07 08:25:06

标签: java maven maven-2

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

2 个答案:

答案 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