排除依赖
背景:我在service中有一个jar包,然后在api中也有一个相同的jar包,因为service依赖于api;这样就会有冲突,因为有两个相同的jar包了。这时候就需要用到依赖传递
当使用exclusions元素声明排除依赖,exclusions可以包含一个或者多个exclusion子元素,因此可以排除一个或者多个传递性依赖。需要注意的是,声明exclusions的时候只需要groupId和artifactId,而不需要version元素,因为只需要groupId和artifactId就能唯一定位依赖图中的某个依赖。换句话说,Maven解析后的依赖中,不可能出现groupId和artifactId相同,但是version不同的两个依赖。
maven还有个可选依赖的设置,在当前项目A设置对某个依赖是可选的
<optional>true</optional>
如果我的当前项目是project1,project1要依赖project2,project1依赖project2的配置中加上 true,表示依赖可选,如下:
<dependency>
<groupId>com.projecct</groupId>
<artifactId>project2</artifactId>
<version>1.0</version>
<scope>compile</scope>
<optional>true</optional>
</dependency>