聊聊maven的pom.xml中的exclusions標簽的作用
maven pom.xml的exclusions標簽作用
項目中的例子
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </exclusion> </exclusions> </dependency>
解釋exclusion標簽
這個標簽的作用是排除關聯依賴的引入,因為maven的pom依賴其中有一點是將關聯的依賴全都引入進來 ,
這個標簽在這的作用就是 如果關聯的依賴和引入的其他依賴可能存在沖突,
就必須將關聯的依賴排除掉,所以就用這個標簽。
另外這個+s的,大傢應該也明白 ,就是可以包含多個嗎!!!!
用exclusions來進行排除依賴
exclusions
但依賴調節並不解決所有問題,我們還需要exclusions來進行排除依賴。
例如這樣一個情況,工程中引入瞭A,A依賴B,但是B的版本過舊。
此時可以使用exclusions排除該傳遞性依賴,並顯示聲明一個最新版本的B依賴。
比如這樣
<dependency> <groupId>com.lowagie</groupId> <artifactId>itext</artifactId> <version>4.2.1</version> <exclusions> <exclusion> <artifactId>bcmail-jdk14</artifactId> <groupId>bouncycastle</groupId> </exclusion> <exclusion> <artifactId>bcprov-jdk14</artifactId> <groupId>bouncycastle</groupId> </exclusion> <exclusion> <artifactId>bctsp-jdk14</artifactId> <groupId>bouncycastle</groupId> </exclusion> </exclusions> </dependency>
在比如若是使用zookeeper發現有log4j的沖突。
我們也可以使用這種方式進行排除
<dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> <version>3.5.4-beta</version> <exclusions> <exclusion> <artifactId>slf4j-log4j12</artifactId> <groupId>org.slf4j</groupId> </exclusion> </exclusions> </dependency>
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。
推薦閱讀:
- springboot log4j2不能打印框架錯誤日志的解決方案
- 關於pom.xml中maven無法下載springcloud包問題
- 部署springboot項目到雲服務器的兩種方式(jar+war)
- 如何創建SpringBoot項目
- SpringBoot如何切換成其它的嵌入式Servlet容器(Jetty和Undertow)