我在pom.xml中排除了junit depdendency的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>
答案 0 :(得分:0)
正如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] ------------------------------------------------------------------------