继承

  如果项目划分了多个模块,都需要依赖相似的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. Python2.7 urlparse学习

    urlparse模块主要是把url拆分为6部分,并返回元组.并且可以把拆分后的部分再组成一个url.主要有函数有urljoin.urlsplit.urlunsplit.urlparse等. urlpa ...

  2. 使用httpClient下载网页

    HttpCore 对HTTP协议客户端编程做了一些基本的封装.例如,格式化请求头和解析响应头.LineF ormatter用来格式化请求头信息,而实际的实现在BasicLineF ormatter 上 ...

  3. Wiki 标记语言(Fitnesse)

  4. Junit使用注意点

    注意点 1. 使用了@BeforeClass后@Ignore将会失效

  5. PhpStorm插件之CodeGlance

    安装插件 File->Setting->Pluugins   搜索  CodeGlance 如何使用 安装完插件后,RESTART IDE,随便打开一个文件都可看到效果

  6. 用spin和edit控件来用spin控制edit里面小数的增减

    1.响应SPIN的消息,就是点SPIN的上键头和下键头的消息,在这个消息里改变值是以0.1步进量增减.2.使用UpdateData(FALSE)来更新EDIT的关联的double型的变量. 创建步骤 ...

  7. java读取properties文件的配置信息

    项目开发中,我们一般来向 application.properties 文件中放一些全局配置变量,以便程序中读取使用,本篇内容来演示从properties配置文件中读取键值. 当然,我们不一定写入 a ...

  8. 多线程Demo1 了解

      首先演示一下主线程的阻塞   //  DYFViewController.m //  623-01-阻塞多线程 // //  Created by dyf on 14-6-23. //  Copy ...

  9. Maven多模块构建实例

    创建coffee-parent项目 New->Maven Project 创建coffee-web项目 右键coffee-parent项目->New->Project... 注意:需 ...

  10. swap(2018.10.16)

    题意:给定一个{0,1,2,3,-,n-1}的排列 p. 一个{0,1,2 ,-,n-2}的排列 q 被认为是优美的排列, 当且仅当 q 满足下列条件 对排列 s={0,1,2,3,...,n-1}进 ...