maven的统一版本管理实践

为什么要使用maven的统一版本管理?

在进行项目开发的时候,我们使用maven来做项目的构建和管理。为了方便项目中各个模块之间的复用,项目通常会有多个模块构成。不同的模块,会各自应用自己需要的jar包依赖,就会导致不同的模块引用了不同版本的jar包依赖,从而出现兼容性问题。还有为了方便版本的统一升级维护,防止部分模块的依赖升级,导致项目中的多个版本的同名jar。基于这些原因,使用maven的统一版本管理就可以解决类似的问题。

代码示例

父 pom.xml配置示例

通常会写一组 标签,在标签中定义好版本号。

 <properties>
    <jackson.version>2.8.10</jackson.version>
    <tk.mybatis.version>4.0.0</tk.mybatis.version>
 </properties>

使用${jackson.version}就可以引用上边定义的版本号

<dependencyManagement>
 <dependencies>
      <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
        <version>${jackson.version}</version>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>${jackson.version}</version>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-annotations</artifactId>
        <version>${jackson.version}</version>
      </dependency>
      <dependency>
        <groupId>tk.mybatis</groupId>
        <artifactId>mapper</artifactId>
        <version>${tk.mybatis.version}</version>
      </dependency>
 </dependencies>
</dependencyManagement>

子 pom.xml配置示例

子模块引用父模块的版本方法 直接写groupId、artifactId就可以,版本就可以自动引用

  <dependency>
         <groupId>com.fasterxml.jackson.core</groupId>
         <artifactId>jackson-core</artifactId>
  </dependency>

为什么用SNAPSHOT?

原文地址:https://www.cnblogs.com/luao/p/10519953.html