zoukankan      html  css  js  c++  java
  • Maven的依赖管理

    我们知道dependencies是可以被继承的,这个时候我们就想到让我们的发生了共用的依赖元素转移到parent中,这样我们又进一步的优化了配置。可是问题也随之而来,如果有一天我创建了一个新的模块,但是这个模块不需要这些parent的依赖,这时候如何处理?

    是的,maven的依赖管理就是来解决这个问题的

    增加一个新的元素:dependencyManagement

    从上面的列表中我们发现dependencyManagement也是可以被继承的,这恰恰满足了我们的需要,它既能够让子模块继承到父模块的依赖配置,又能保证子模块依赖使用的灵活性

    dependencyManagement的特性:在dependencyManagement中配置的元素既不会给parent引入依赖,也不会给它的子模块引入依赖,仅仅是它的配置是可继承的

    最佳实践:

    这时候我们就可以在父POM中声明这些依赖:

    1. <properties>  
    2.         <target.version>2.5.6</target.version>  
    3.     </properties>  
    4.   
    5.     <dependencyManagement>  
    6.         <dependencies>  
    7.             <dependency>  
    8.                 <groupId>your groupId</groupId>  
    9.                 <artifactId>your artifactId</artifactId>  
    10.                 <version>${target.version}</version>  
    11.             </dependency>  
    12.         </dependencies>  
    13.     </dependencyManagement>  


    子模块的POM继承这些配置:子模块继承这些配置的时候,仍然要声明groupId和artifactId,表示当前配置是继承于父POM的,从而直接使用父POM的版本对应的资源

    1. <dependencies>  
    2.             <dependency>  
    3.                 <groupId>your groupId</groupId>  
    4.                 <artifactId>your artifactId</artifactId>  
    5.             </dependency>  
    6.         </dependencies>  

    这个可以有效的避免多个子模块使用依赖版本不一致的情况,有助于降低依赖冲突的几率。注:只有子模块配置了继承的元素,才会真正的有效,否则maven是不会加载父模块中声明的元素。

  • 相关阅读:
    java excel转pdf 工具类
    java word转pdf 工具类
    如何向数据库中添加TIMESTAMP(6)类型的数据
    IE浏览器 div或者其他容器的height属性无效 滚动条问题解决办法
    ComboBox赋值ItemsSource数据源的时候会触发SelectionChanged改变事件的解决办法
    devexpress chart 散点图加载并分组显示(可以自定义颜色 同组中的点颜色相同)
    myEclipse mybatis自动生成工具xml配置
    MySQL日志简介
    存储引擎简介
    索引介绍
  • 原文地址:https://www.cnblogs.com/sxpy-lj/p/7251468.html
Copyright © 2011-2022 走看看