当前位置: 首页 > 知识库问答 >
问题:

排除测试的maven依赖项

师谦
2023-03-14

我有一个编译和运行时所需的依赖项,但我想在运行测试时将其排除。这可能吗?也许,通过设置个人资料?但是,如何仅在测试生命周期阶段停用它?

共有1个答案

王亮
2023-03-14

借助maven surefire插件,您可以在测试阶段(重新)配置类路径。您可以添加类路径元素或排除依赖项。

<project>
  [...]
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.12.2</version>
        <configuration>
          <additionalClasspathElements>
            <additionalClasspathElement>path/to/additional/resources</additionalClasspathElement>
            <additionalClasspathElement>path/to/additional/jar</additionalClasspathElement>
          </additionalClasspathElements>
          <classpathDependencyExcludes>
            <classpathDependencyExclude>org.apache.commons:commons-email</classpathDependencyExclude>
          </classpathDependencyExcludes>
        </configuration>
      </plugin>
    </plugins>
  </build>
  [...]
</project>

正如@jFrenetic所指出的,您可以使用maven failsafe插件进行同样的操作。

 类似资料:
  • PS:请不要建议我在这里使用assembly或其他fat-jar插件,因为我有意复制依赖项jar用于Docker映像构建优化:一层用于依赖项,另一层用于jar,在任何依赖项改变之前,依赖项层总是被缓存:

  • 主要内容:排除依赖,可选依赖,排除依赖 VS 可选依赖 我们知道 Maven 依赖具有传递性,例如 A 依赖于 B,B 依赖于 C,在不考虑依赖范围等因素的情况下,Maven 会根据依赖传递机制,将间接依赖 C 引入到 A 中。但如果 A 出于某种原因,希望将间接依赖 C 排除,那该怎么办呢?Maven 为用户提供了两种解决方式:排除依赖(Dependency Exclusions)和可选依赖(Optional Dependencies)。 排除依赖

  • 我们有一个EAR项目,它组装一个WAR文件,并有一些JAR文件作为依赖项。EAR的POM.xml如下所示: 作为JAR包含在EAR中的包impl中有一些测试类。不幸的是,在组装EAR时,这些测试类与JAR捆绑在一起。除了facet之外,Maven应该包含测试类,当EAR被组装时,我怎样才能在JAR中排除这些测试类呢? Package-impl中的所有测试类都在src/test/java Sourc

  • 我在我的项目中遇到了依赖关系冲突的问题。特别是,slf4j日志记录有两种实现:slf4j-简单和logback-经典,我得到了 在运行时。 logback-classic对我来说是必备的依赖项(因为dropwizard),但slf4j-simple不是真的,我想把它从我的uber项目中去掉。只是没那么容易。 我的“uber jar”依赖于“small jar”,而“small-jar”又依赖于“s

  • 问题:Maven在我的测试中找不到一些依赖项 在我的pom中是这样导入的。xml: 我已经试过了: mvn测试编译 使Intellij缓存无效 重启Intellij 清除. m2并重建项目

  • 问题内容: 我有一个项目,该项目依赖于由供应商控制的工件。该工件包含一些我依赖的类,其中一些类较旧并且会引起问题。有没有办法让Maven自动扩展jar,删除类并将它们重新打包为依赖项?我会举一个例子。 所以- 我需要使用在项目网站,但我需要使用从神器。我无法修改Supplier:artifact或us:dependency。 有任何想法吗?! 问题答案: 从版本2.0.9开始,maven保留了类路