springboot中的pom文件是如何管理依賴的


我們來看一下新建完成后的springboot中的pom文件

 <?xml version="1.0" encoding="UTF-8"?>
  <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>
      <parent>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-parent</artifactId>
          <version>2.1.6.RELEASE</version>
          <relativePath/> <!-- lookup parent from repository -->
      </parent>
      <groupId>com.guomie</groupId>
      <artifactId>spring-boot-ymal</artifactId>
      <version>0.0.1-SNAPSHOT</version>
      <name>spring-boot-ymal</name>
      <description>Demo project for Spring Boot</description><properties>
          <java.version>1.8</java.version>
      </properties><dependencies>
          <!--web依賴-->
          <dependency>
              <groupId>org.springframework.boot</groupId>
              <artifactId>spring-boot-starter-web</artifactId>
          </dependency>
    </dependencies>
  </project>

 

我們主要看一下他的父依賴

  <parent>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-parent</artifactId>
       <version>2.1.6.RELEASE</version>
       <relativePath/> <!-- lookup parent from repository -->
    </parent>
 
        
   <!--父類的父類 -->
    <parent>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-dependencies</artifactId>
      <version>2.1.6.RELEASE</version>
      <relativePath>../../spring-boot-dependencies</relativePath>
    </parent>

 

這里我們可以看到他里面有些寫版本的依賴和版本號

依賴配置都聲明在了dependencyManagement 里面,所以他的子項目不會自動注入這些依賴,只能通過自項目顯示注入自己需要的依賴,默認用的就是父依賴中的版本號,所以我們在注入這種starter的時候不需要指定版本號。

我們再看一下我們引入的starter

這里我們以web為例 這里顯示依賴了web啟動器,他的版本默認就是父類中的版本號

<dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
  </dependency>

 

點進去看到他還會有一些其他的依賴

 <dependencies>
      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
        <version>2.1.6.RELEASE</version>
        <scope>compile</scope>
      </dependency>
      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-json</artifactId>
        <version>2.1.6.RELEASE</version>
        <scope>compile</scope>
      </dependency>
      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
        <version>2.1.6.RELEASE</version>
        <scope>compile</scope>
      </dependency>
      <dependency>
        <groupId>org.hibernate.validator</groupId>
        <artifactId>hibernate-validator</artifactId>
        <version>6.0.17.Final</version>
        <scope>compile</scope>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
        <version>5.1.8.RELEASE</version>
        <scope>compile</scope>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>5.1.8.RELEASE</version>
        <scope>compile</scope>
      </dependency>
    </dependencies>

所以springboot幫我們管理好了所需要依賴的版本號,而且按照模塊去封裝成一個個starter,我們在使用的時候就很更簡單快捷。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM