java - Maven,排除 junit 的 hamcrest 依赖

标签 java maven junit

我在 pom.xml 中排除了 junit 依赖项的 hamcrest 依赖项。 当我比较运行 "mvn package""mvn dependency:tree" 时的日志时,我在排除 hamcrest 依赖之前和之后没有看到任何差异。

这里是排除传递依赖的部分。在哪里可以找到运行排除部分之前和之后的差异?我还查看了 .m2 目录

<dependencies>
    <dependency>
       <groupId>junit</groupId>
        <artifactId>junit</artifactId>
       <version>${junit.version}</version>
       <scope>test</scope>
       <exclusions>
         </exclusion>
            <groupId> org.hamcrest</groupId>
            <artifactId>hamcrest</artifactId>
          </exclusion>
      </exclusions>
</dependency>

最佳答案

正如 Kiril S. 所说,由于拼写错误,显示的 pom 部分无效,这会导致执行任何任务时出现错误。

排除是错误的,因为它确实与 junit 声明的任何依赖项匹配。 运行 mvn dependency:tree 应显示以下内容:

[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ my-app ---
[INFO] com.mycompany.app:my-app:jar:1.0-SNAPSHOT
[INFO] \- junit:junit:jar:4.11:test
[INFO]    \- org.hamcrest:hamcrest-core:jar:1.3:test

如您所见,junit 的实际依赖项是

<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-core</artifactId>

如果您在 pom 中修复了该问题,则调用 mvn dependency:tree 将导致预期的排除。

[INFO] com.mycompany.app:my-app:jar:1.0-SNAPSHOT
[INFO] \- junit:junit:jar:4.11:test
[INFO] ------------------------------------------------------------------------

关于java - Maven,排除 junit 的 hamcrest 依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35027292/

相关文章:

java - 在 Java 中不使用 replace 替换字符串中的单词

java - Spring 的 AsyncRestTemplate 不适用于压缩内容,获取压缩内容而不是 json 对象

java - 实现 Mockito 的 Answer 接口(interface)来测试方法的所有分支

java - 如何使用 JUnit/Mockito 模拟一个值来测试另一个方法中的条件?

java - 如何模拟具有两种不同实现的接口(interface)

Java项目构建

java - 如何修复 Java 中的插件依赖错误

eclipse - : "Updating Maven Project". 不支持的 IClasspathEntry kind=4 期间发生内部错误

spring - Resteasy 3 与 Spring 3 集成不起作用

java - 使用什么范围的值来为单词给出情感分数是明智的?