zoukankan      html  css  js  c++  java
  • Maven 进阶讲解(继承)

                                 Maven 进阶讲解(继承)

       为什么要继承?

                继承就是避免重复,maven的继承也是这样;

    情景分析:

    我们在项目开发的过程中,可能多个模块独立开发,但是多个模块可能依赖相同的元素,比如说每个模块都需要spring或者Mysql驱动包,那么我们就可以采用继承的方式,只需要在父级中引入即可;

     

    怎么做?

    1. 作为父模块的POM,其打包类型也必须为POM
    2. 结构:父模块只是为了帮助我们消除重复,所以它也不需要src/main/java、src/test/java等目录
    3. 新的元素:<parent>,它是被用在子模块中的
    4. <parent>元素的属性:<relativePath>: 表示父模块POM的相对路径,在构建的时候,Maven会先根据relativePath检查父POM,如果找不到,再从本地仓库查找
    5.  relativePath的默认值: ../pom.xml
    6. 子模块省略groupId和version: 使用了继承的子模块中可以不声明groupId和version, 子模块将隐式的继承父模块的这两个元素;

      继承那些东西?

                 继承properties:

     

    继承dependencies标签配置的依赖:

    dependencies中定义的依赖,子module可以共享

     

    dependencyManagement依赖管理:

    1. dependencyManagement中定义的依赖,子模块不会共享
    2. 父模块用dependencyManagement进行管理,这样的好处是子模块可以有选择性的继承,而不需要全部继承
    3. dependencyManagement的使用就是方便管理版本,子项目中要引入group Id和atifactId,version和scope继承父模块中的配置

     

     

    聚合与继承的关系: 聚合主要为了快速构建项目,继承主要为了消除重复

                利用Maven 进阶讲解(聚合的项目做一下操作)

    在father项目的pom.xml中添加 正确的jar的gva

    因为在san01 san02中已经引入父的gva坐标

     

    子项目中san01 san02中会出现和父项目中加入的jar一样

     

     

              

  • 相关阅读:
    【学习笔记】Python 3.6模拟输入并爬取百度前10页密切相关链接
    socket编程
    2.4.2电子书fb.c文件
    3.1 电子书框架
    文件浏览器及数码相框 -2.3.2-freetype_arm-2
    文件浏览器及数码相框 -2.3.2-freetype_arm-1
    文件浏览器及数码相框 -2.3.1freetype_pc
    文件浏览器及数码相框 -2.2-字符点阵及汉字库
    文件浏览器及数码相框 -2.1-字符编码
    文件浏览器及数码相框-1
  • 原文地址:https://www.cnblogs.com/liudongdong666666/p/7822451.html
Copyright © 2011-2022 走看看