【问题标题】:How to exclude a dependecy only for test scope in javajava - 如何仅在java中排除测试范围的依赖项
【发布时间】:2017-05-02 06:44:04
【问题描述】:

我只想排除测试范围的依赖项。

例子:-

commons-lang3 依赖项在我的项目中的两个不同位置使用。我只想为测试范围排除这种依赖关系。

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
</dependency>

我该怎么做?

【问题讨论】:

  • 为什么?这个库在测试中有什么危害?
  • @Lutz Horn 我有我的自定义依赖项,我想排除它仅用于测试

标签: java pom.xml maven-dependency


【解决方案1】:

您可以在surefire 插件中配置classpath。 如下:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>xxx</version>
    <configuration>
      <classpathDependencyExcludes>
        <classpathDependencyExclude>org.apache.commons:commons-lang3</classpathDependencyExclude>
      </classpathDependencyExcludes>
    </configuration>
</plugin>

更多信息Removing Dependency Classpath Elements

【讨论】:

  • 不管构建范围如何,这不是总是排除 commons-lang3 依赖项吗?
  • @911DidBush,surefire 插件仅在测试范围内起作用,因此它仅在测试范围内排除 commons-lang3 依赖。
猜你喜欢
  • 2012-11-14
  • 1970-01-01
  • 2019-11-25
  • 2020-02-28
  • 1970-01-01
  • 2014-12-02
  • 1970-01-01
  • 2012-08-16
  • 1970-01-01
相关资源
最近更新 更多