Maven什麼時候需要排除依賴,如何排除依賴

生活加油發表於2020-10-15

依賴的排除

如果我們在當前工程中引入了一個依賴是 A,而 A 又依賴了 B,那麼 Maven 會自動將 A 依賴的 B 引入當前工程,但是個別情況下 B 有可能是一個不穩定版,或對當前工程有不良影響。這時我們可以在引入 A 的時候將 B 排除。

場景示例

建立第一個maven專案maven_demo01

執行一下maven install 命令,安裝到本地倉庫包,這樣別的專案就可以直接引用

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.gzl.demo</groupId>
  <artifactId>maven_demo01</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  
  <dependencies>
	  	<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-core</artifactId>
			<version>4.1.1.RELEASE</version>
			<scope>compile</scope>
		</dependency>
  </dependencies>
</project>

再建立一個maven專案直接引用第一個專案的jar包

<?xml version="1.0" ?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.gzl.demo</groupId>
  <artifactId>maven_demo02</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  
  <dependencies>
  	<dependency>
	    <groupId>junit</groupId>
	    <artifactId>junit</artifactId>
	    <version>4.12</version>
	</dependency>	
  	<dependency>
  		<groupId>com.gzl.demo</groupId>
		<artifactId>maven_demo01</artifactId>
		<version>0.0.1-SNAPSHOT</version>
  	</dependency>	
  </dependencies>
</project>

觀察dependency hierarchy(依賴層次)

在這裡插入圖片描述

新增排除依賴

在這裡插入圖片描述

最終結果

在這裡插入圖片描述

注意

有時候我們編譯工具沒有設定自動編譯,就會導致新增完依賴之後,但是並沒有生效,這個時候我們需要
右鍵專案-》maven-》update project
自動編譯設定是
project-》build Automatically

相關文章