統一管理第三方包的依賴包版本號
起因
在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包,這個包的版本0.10.0修改為0.9.0,我們如何實現呢?
推薦方法
- 通過在dependencyManagement中聲明三方包的版本,來在自己項目中,將所有指定包的版本進行統一,并且包版本不同產生的沖突

在當前項目的pom.xml中添加代碼
<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>
刷新依賴之后,可以看到三方包里的依賴包avro-mapred版本已經改變了

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