http://jawsy.blog.51cto.com/752812/544640
项目A依赖于项目B,但是由于一些原因,不想引入传递性依赖C,而是自己显式地声明对于项目C1.1.0版本的依赖。代码中使用exclusions元素声明排除依赖,exclusions可以包含一个或者多个exclusion子元素,因此可以排除一个或者多个传递性依赖。需要注意的是,声明exclusion的时候只需要groupId和artifactId,而不需要version元素,这是因为只需要groupId和artifactId就能唯一定位依赖图中的某个依赖。
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.wangsy.mvn</groupId>
<artifactId>project-a</artifactId>
<version>1.0.0</version>
<dependencies>
<dependency>
<groupId>com.wangsy.mvn</groupId>
<artifactId> project-b</artifactId>
<version>1.0.0</version>
<exclusions>
<exclusion>
<groupId>com.wangsy.mvn</groupId>
<artifactId> project-c</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.wangsy.mvn</groupId>
<artifactId> project-c</artifactId>
<version>1.1.0</version>
</dependency>
<dependencies>
</project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.wangsy.mvn</groupId>
<artifactId>project-a</artifactId>
<version>1.0.0</version>
<dependencies>
<dependency>
<groupId>com.wangsy.mvn</groupId>
<artifactId> project-b</artifactId>
<version>1.0.0</version>
<exclusions>
<exclusion>
<groupId>com.wangsy.mvn</groupId>
<artifactId> project-c</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.wangsy.mvn</groupId>
<artifactId> project-c</artifactId>
<version>1.1.0</version>
</dependency>
<dependencies>
</project>