在開發過程中, 碰到了Maven依賴繼承,然後有一些沒有寫版本號的依賴,在這裏說明一下如何理解依賴關係
<!-- 添加對JDBC 的支持 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
其實在Spring Boot 項目下的pom.xml文件中通常都會有一個<parent>
標籤,用來指定繼承的父pom,如下:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.10.RELEASE</version>
<relativePath/>
</parent>
點進去(ctrl+左單擊)後會發現spring-boot-starter-parent也繼承自一個pom,如下:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>1.5.10.RELEASE</version>
<relativePath>../../spring-boot-dependencies</relativePath>
</parent>
再點進去(ctrl+左單擊)就可以看到結果了,頂級的pom文件的座標如下,通過<artifactId>
標籤我們應該知道這個pom文件時用來管理依賴版本號的。
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>1.5.10.RELEASE</version>
<packaging>pom</packaging>
在引入依賴的時候,即使你不指定依賴的版本,Spring Boot 也會通過Maven 的繼承關係,引入依賴的版本,從而完成版本的統一。
當然你也可以不使用Maven繼承的依賴版本,只需要在引入依賴的時候指定具體的依賴版本即可。