Java 在Maven测试范围中运行时,如何排除所提供范围中的依赖项?
在Maven测试范围中运行时,如何排除所提供范围中的依赖项?我有一个不寻常的用例,我需要排除一个特定的实现,并在测试用例中用另一个替换它。Maven测试似乎总是包括其他作用域,但在我的例子中,我想做一些例外。如何做到这一点?有些情况下,您需要在不同的模块中运行测试。这可能就是你在这里需要的。它允许您的测试使用不同的依赖项、属性和Java版本等。在某些情况下,您需要在不同的模块中运行测试。这可能就是你在这里需要的。它允许您的测试使用不同的依赖项、属性和Java版本等。我认为,最简单的方法是为要使用的每个依赖项创建2个概要文件。您可以使用提供的作用域激活eBydefault 可能是这样的:Java 在Maven测试范围中运行时,如何排除所提供范围中的依赖项?,java,maven,maven-2,Java,Maven,Maven 2,在Maven测试范围中运行时,如何排除所提供范围中的依赖项?我有一个不寻常的用例,我需要排除一个特定的实现,并在测试用例中用另一个替换它。Maven测试似乎总是包括其他作用域,但在我的例子中,我想做一些例外。如何做到这一点?有些情况下,您需要在不同的模块中运行测试。这可能就是你在这里需要的。它允许您的测试使用不同的依赖项、属性和Java版本等。在某些情况下,您需要在不同的模块中运行测试。这可能就是你在这里需要的。它允许您的测试使用不同的依赖项、属性和Java版本等。我认为,最简单的方法是为要使用
提供依赖项
真的
[提供依赖信息]
测试依赖性
假的
[测试相关性信息]
进入测试模式时,取消激活提供的依赖项并激活另一个
mvn test -P!providedDependency,testDependency
我认为,最简单的方法是为每个要使用的依赖项创建2个概要文件。您可以使用提供的作用域激活eBydefault 可能是这样的:
提供依赖项
真的
[提供依赖信息]
测试依赖性
假的
[测试相关性信息]
进入测试模式时,取消激活提供的依赖项并激活另一个
mvn test -P!providedDependency,testDependency
听起来很奇怪。您有更多的细节吗?我正在尝试构建测试用例,但在我知道的任何存储库中都找不到旧的ebedableservlet容器。我使用的框架只允许更新的servlet容器,它作为“测试”包含在我们的依赖项中。旧的servlet版本作为“提供”包含在我们的依赖项中。当然,在类路径中混合这些元素会导致异常。因此,在Maven测试中需要从类路径中排除旧的servlet,这听起来很奇怪。您有更多的细节吗?我正在尝试构建测试用例,但在我知道的任何存储库中都找不到旧的ebedableservlet容器。我使用的框架只允许更新的servlet容器,它作为“测试”包含在我们的依赖项中。旧的servlet版本作为“提供”包含在我们的依赖项中。当然,在类路径中混合这些元素会导致异常。因此,在基于Maven test.Profile的类路径中排除旧servlet的需要似乎与m2e eclipse插件没有很好的集成。Eclipse的JUnit插件也没有集成。有没有一种方法可以在eclipse中的概要文件之间切换,并让eclipse根据概要文件中定义的内容切换库?没有这个,我无法调试代码。到目前为止,找不到比这更好的解决方案。也许我应该尝试将其分离到另一个模块中,看看是否有效。您是否尝试过在Eclipse中创建一个“运行配置-->Maven B uild”,目标为“test”,配置文件为“providedDependency,testDependency”。然后可以调试jUnit测试。基于概要文件的测试似乎无法与m2e eclipse插件很好地集成。Eclipse的JUnit插件也没有集成。有没有一种方法可以在eclipse中的概要文件之间切换,并让eclipse根据概要文件中定义的内容切换库?没有这个,我无法调试代码。到目前为止,找不到比这更好的解决方案。也许我应该尝试将其分离到另一个模块中,看看是否有效。您是否尝试过在Eclipse中创建一个“运行配置-->Maven B uild”,目标为“test”,配置文件为“providedDependency,testDependency”。然后就可以调试jUnit测试了。我想真的没有其他方法了。我相信这是我能找到的最干净的方法。我想真的没有别的办法了。我相信这是我能找到的最干净的方法。