統一(yi)管理第三(san)方包的依賴包版(ban)本號
起因
在java項目中,我在maven的pom.xml中引用了io.github.officiallysingh:spring-boot-starter-spark:1.3包,然后這個包里又有org.apache.spark:spark-core_2.13:3.5.5包的引用,而在spark-core_2.13包中又引用了org.apache.avro:avro-mapred:1.11.4包,這個包的版(ban)本0.10.0修(xiu)改為0.9.0,我們如何實現(xian)呢?
推薦方法
- 通過在dependencyManagement中聲明三方包的版本,來在自己項目中,將所有指定包的版本進行統一,并且包版本不同產生的沖突

在(zai)當前(qian)項(xiang)目的pom.xml中(zhong)添加代碼(ma)
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot-dependencies.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.apache.avro</groupId>
<artifactId>avro-mapred</artifactId>
<version>1.11.3</version>
</dependency>
</dependencyManagement>
刷(shua)新(xin)依賴(lai)之后,可以看(kan)到(dao)三方包里的依賴(lai)包avro-mapred版本已經改變了

其它方法
下面(mian)這個表格總(zong)結了你(ni)可以在項目中使用的三種(zhong)主要策(ce)略。
| 方法 | 操作方式 | 適用場景與說明 |
|---|---|---|
| ?? 直接聲明依賴 | 在 <dependencies> 中直接聲明你想要的 jersey-client 版本。 |
最簡潔直接,適用于單模塊項目,快速覆蓋傳遞依賴的版本。 |
| ?? 依賴管理 | 在 <dependencyManagement> 中統一管理 jersey-client 的版本。 |
推薦用于多模塊項目,可以保證所有模塊使用的版本一致,避免沖突。 |
| ??? 排除+引入 | 先通過 <exclusions> 排除舊版本,再顯式引入新版本。 |
最嚴格的控制,確保構建時不會引入沖突的舊版本,但配置稍顯繁瑣。 |