继承

  如果项目划分了多个模块,都需要依赖相似的jar包,只需要创建一个父模块,在它的pom.xml文件中配置依赖的jar包。功能模块只需要继承父模块,就可以自动得到其依赖的jar包,而不需要再每个模块中都重复配置。

(这个跟java的继承机制是相似的,如果在父类有非私有的方法,除非子类需要覆盖方法,否则可以子类可以直接使用父类非私有的方法)。

创建父模块

①    在eclipse中创建项目“maven project”,这里勾选“Create a simple…”,然后点击“Next”。

②    输入group id和artifact id,packaging必须选择pom,只有pom才能被继承,其他不用管。如图所示:

③ 创建之后,删除src,留下pom.xml就行了。

④ 修改pom.xml,配置公共的依赖jar包。

<dependencies> 

  <dependency> 

    <groupId>org.springframework</groupId> 

    <artifactId>spring-core</artifactId> 

    <version>5.0.6.RELEASE</version> 

  </dependency> 

</dependencies> 

⑤ 项目执行maven install(Run--maven install),将parent.pom安装到本地仓库。可以根据控制台给出的地址找到parent.pom。

子模块

在子项目的pom.xml中不需要配置依赖,只要继承parent.pom的坐标,就可以自动依赖parent的所有jar包。

<parent> 

  <groupId>com.maven</groupId> 

  <artifactId>parent</artifactId> 

  <version>0.0.1-SNAPSHOT</version> 

</parent>

依赖管理

① 由于每个子模块的功能不同,如果直接继承父模块,可能会将不需要的多余的jar包也继承过来,如果父模块使用<dependencyManagement>,子模块可以选择性的继承。

<dependencyManagement> 

  <dependencies> 

    <dependency> 

      <groupId>org.springframework</groupId> 

      <artifactId>spring-core</artifactId> 

      <version>5.0.6.RELEASE</version> 

    </dependency> 

  </dependencies> 

</dependencyManagement> 

② 在子模块中,配置parent继承以后,不会自动依赖,需要手动添加需要的依赖,只是不需要再配置其他版本参数,便于在parent中统一管理jar包版本。

<dependency> 

  <groupId>org.springframework</groupId> 

  <artifactId>spring-core</artifactId> 

</dependency> 

③ 在子模块没有引用父模块,Libraries情况是这样的:

  可以看到,Libraries下没有关于Maven Dependencies的信息。

  引入父模块之后,配置好参数之后:

  Maven Dependencies下面有三个依赖jar包了。


参考文章:https://blog.csdn.net/wangb_java/article/details/57074645#commentsedit

(八)maven学习之继承的更多相关文章

  1. (转)Maven学习总结(八)——使用Maven构建多模块项目

    孤傲苍狼只为成功找方法,不为失败找借口! Maven学习总结(八)——使用Maven构建多模块项目 在平时的Javaweb项目开发中为了便于后期的维护,我们一般会进行分层开发,最常见的就是分为doma ...

  2. (转)Maven学习总结(五)——聚合与继承

    孤傲苍狼只为成功找方法,不为失败找借口! Maven学习总结(五)——聚合与继承 一.聚合 如果我们想一次构建多个项目模块,那我们就需要对多个项目模块进行聚合 1.1.聚合配置代码 1 <mod ...

  3. Maven学习总结(5)——聚合与继承

    Maven学习总结(五)--聚合与继承 一.聚合 如果我们想一次构建多个项目模块,那我们就需要对多个项目模块进行聚合 1.1.聚合配置代码 <modules> <module> ...

  4. Maven学习小结(四 聚合与继承)

    1.聚合 一次构建多个项目模块. 2.继承 为了消除重复,把很多相同的配置提取出来,例如groupid和version: 2.1 Maven中可以继承的POM元素 groupId :项目组 ID ,项 ...

  5. maven学习笔记四(聚合和继承)

    聚合 现在假如,我创建了3个maven项目, user-core.2.user-log,3.user-service 这个时候,假如我们要打包这些项目,要一个一个来,会很麻烦.那么我们有没有更好的办法 ...

  6. Maven学习总结(8)——使用Maven构建多模块项目

    Maven学习总结(八)--使用Maven构建多模块项目 在平时的Javaweb项目开发中为了便于后期的维护,我们一般会进行分层开发,最常见的就是分为domain(域模型层).dao(数据库访问层). ...

  7. Maven学习总结(14)——Maven 多模块项目如何分工?

    一.开场白 使用Maven有段时间了,只能感慨真是个好东西,让我从传统模式体会到了严谨.规范.敏捷.方便的特性. 如果你懂Maven或许看过Juven翻译的<Maven权威指南>: 发个牢 ...

  8. 20145213《Java程序设计》第八周学习笔记

    20145213<Java程序设计>第八周学习笔记 教材学习内容总结 "桃花春欲尽,谷雨夜来收"谷雨节气的到来意味着寒潮天气的基本结束,气温回升加快.刚出冬的我对于这种 ...

  9. 20145304 Java第八周学习报告

    20145304<Java程序设计>第八周学习总结 教材学习内容总结 NIO NIO使用频道来衔接数据节点,在处理数据时,NIO可以让你设定缓冲区容量,在缓冲区中对感兴趣的数据区块进行标记 ...

随机推荐

  1. 查看电脑MAC地址

    MAC地址也叫物理地址 1.运行 cmd 输入ipconfig或ipconfig/all

  2. shell的split生成的文件按规律命名及添加扩展名

    可以参考 用shell切分文件--split shell下的split命令主要用于分割一些大文件用的,比如经常要用到将一个几十万行的TXT分割为多少行一个的文件,非常有用,唯一坑爹的是,切割后的文件不 ...

  3. c++函数模板1

    1 定义: 函数模板 只适用于参数个数相同但是类型不同 而且函数体相同的情况 2 这个例子没有使用模板的情况 #include <iostream> using namespace std ...

  4. DNS与BIND介绍

    前言 DNS(Domain Name System),网域名称系统,是互联网上基础性的服务.DNS 将域名和网络服务器的 IP 地址相互映射,并将这些数据保存至 DNS 服务器.两台主机通信事实上是依 ...

  5. SpringCloud之旅第一篇-微服务概念

    一.单体架构的问题 微服务为什么会出现?在学习Springboot的时候知道Springboot极大的简化了我们的开发,我们可以快速的进行业务开发,Springboot单体应用在项目的开发初期能够满足 ...

  6. sql查询的时候,等于这两个的值得全部取出来

    sql查询的时候  用or连接 ad.jqtype='人文历史' or  ad.jqtype='名胜古迹'

  7. 525. Contiguous Array

    Given a binary array, find the maximum length of a contiguous subarray with equal number of 0 and 1. ...

  8. 483. Smallest Good Base

    For an integer n, we call k>=2 a good base of n, if all digits of n base k are 1. Now given a str ...

  9. 编译keepalived 方法

    作者的环境: redhat 6.5 64 位版 在编译keepalived 前,需要提前给环境安装两个依赖包--zlib和openssl 编译 zlib 库 参考作者之前的博客 http://www. ...

  10. Ubuntu终端查看系统时间,以及日历

    时间:  date 日历: cal https://blog.csdn.net/zhengchaooo/article/details/79500032 修改时区以及时间 查看时区 date -R 修 ...