導入時如何定制spring-boot依賴項的版本


spring-boot通過maven的依賴管理為我們寫好了很多依賴項及其版本,我們可拿來使用。spring-boot文檔介紹了兩種使用方法,一是繼承,二是導入。

通過<parent>繼承:

<project>
  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.1.9.RELEASE</version>
  </parent>
</project>

或者在<dependencyManagement>中導入:

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-dependencies</artifactId>
        <version>1.1.9.RELEASE</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
</dependencies>
</dependencyManagement>

此外,在其文檔里說到,繼承時可簡單地通過屬性定制依賴項版本。比如,改為使用較新的spring-4.1.6.RELEASE版本:

<properties>
    <spring.version>4.1.6.RELEASE<spring.version>
</properties>

不過,此法只對繼承有效,導入無效。以下摘自其文檔說明:

This only works if your Maven project inherits (directly or indirectly) from spring-boot-dependencies. If you have added spring-boot-dependencies in your own dependencyManagement section with <scope>import</scope> you have to redefine the artifact yourself instead of overriding the property.

 這里說到,如要導入后修改依賴項版本就只能自己重新去定義了。

 

需要注意的是,導入后再重新定義既繁瑣又不安全。比如,spring-boot定義了8個tomcat依賴項,如果你導入后只重定義了部分tomcat依賴項及其版本,則將造成版本不一致的問題。

 

那么導入時有沒有既簡單又安全的方法呢?我們可先繼承后導入!

1、先建一個過渡性工程,繼承后定制依賴項的版本。

<project>
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-dependencies</artifactId>
    <version>1.1.9.RELEASE</version>
  </parent>
  <groupId>mycomp</groupId>
  <artifactId>myproject-spring-boot-bom</artifactId>
  <version>1.1.9</version>

  <packaging>pom</packaging>

  <properties>
    <spring.version>4.1.6.RELEASE</spring.version>
  </properties>
</project>

 

2、然后導入到自己的工程里。

<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>mycomp</groupId>
  <artifactId>myproject</artifactId>
  <version>0.0.1-SNAPSHOT</version>

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>mycomp</groupId>
        <artifactId>myproject-spring-boot-bom</artifactId>
        <version>1.1.9</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>
</project>

 

這樣,雖然多建了一個過渡性工程,但定制依賴項版本同繼承時一樣簡單。

 


免責聲明!

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



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