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基础(七)面向对象(二)
    java基础 (六)面向对象(一)
    java基础(五)
    java基础(四)
    sqlloader导出数据和导入数据
    SQL LOADER 的用法 TXT文件导入非常之快
    在线代码对比/匹配 代码对比 在线文本比较
    JAVA 调用命令并输出
    RFC总结-SD模块
    使用BAPI_ACC_DOCUMENT_POST,创建会计凭证,用BADI扩展字段(转)
  • 原文地址:https://www.cnblogs.com/sxpy-lj/p/7251468.html
Copyright © 2011-2022 走看看