导入时如何定制spring-boot依赖项的版本

spring-boot经过maven的依赖管理为咱们写好了不少依赖项及其版本,咱们可拿来使用。spring-boot文档介绍了两种使用方法,一是继承,二是导入。html

经过<parent>继承:spring

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

或者在<dependencyManagement>中导入:tomcat

  <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>

不过,此法只对继承有效,导入无效。如下摘自其文档说明:maven

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

 

须要注意的是,导入后再从新定义既繁琐又不安全。好比,spring-boot定义了8个tomcat依赖项,若是你导入后只重定义了部分tomcat依赖项及其版本,则将形成版本不一致的问题。spa

 

那么导入时有没有既简单又安全的方法呢?咱们可先继承后导入!code

一、先建一个过渡性工程,继承后定制依赖项的版本。htm

<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>

 

二、而后导入到本身的工程里。blog

<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>

 

这样,虽然多建了一个过渡性工程,但定制依赖项版本同继承时同样简单。

相关文章
相关标签/搜索