(八)maven学习之继承

继承
如果项目划分了多个模块,都需要依赖相似的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学习之继承的更多相关文章
- (转)Maven学习总结(八)——使用Maven构建多模块项目
孤傲苍狼只为成功找方法,不为失败找借口! Maven学习总结(八)——使用Maven构建多模块项目 在平时的Javaweb项目开发中为了便于后期的维护,我们一般会进行分层开发,最常见的就是分为doma ...
- (转)Maven学习总结(五)——聚合与继承
孤傲苍狼只为成功找方法,不为失败找借口! Maven学习总结(五)——聚合与继承 一.聚合 如果我们想一次构建多个项目模块,那我们就需要对多个项目模块进行聚合 1.1.聚合配置代码 1 <mod ...
- Maven学习总结(5)——聚合与继承
Maven学习总结(五)--聚合与继承 一.聚合 如果我们想一次构建多个项目模块,那我们就需要对多个项目模块进行聚合 1.1.聚合配置代码 <modules> <module> ...
- Maven学习小结(四 聚合与继承)
1.聚合 一次构建多个项目模块. 2.继承 为了消除重复,把很多相同的配置提取出来,例如groupid和version: 2.1 Maven中可以继承的POM元素 groupId :项目组 ID ,项 ...
- maven学习笔记四(聚合和继承)
聚合 现在假如,我创建了3个maven项目, user-core.2.user-log,3.user-service 这个时候,假如我们要打包这些项目,要一个一个来,会很麻烦.那么我们有没有更好的办法 ...
- Maven学习总结(8)——使用Maven构建多模块项目
Maven学习总结(八)--使用Maven构建多模块项目 在平时的Javaweb项目开发中为了便于后期的维护,我们一般会进行分层开发,最常见的就是分为domain(域模型层).dao(数据库访问层). ...
- Maven学习总结(14)——Maven 多模块项目如何分工?
一.开场白 使用Maven有段时间了,只能感慨真是个好东西,让我从传统模式体会到了严谨.规范.敏捷.方便的特性. 如果你懂Maven或许看过Juven翻译的<Maven权威指南>: 发个牢 ...
- 20145213《Java程序设计》第八周学习笔记
20145213<Java程序设计>第八周学习笔记 教材学习内容总结 "桃花春欲尽,谷雨夜来收"谷雨节气的到来意味着寒潮天气的基本结束,气温回升加快.刚出冬的我对于这种 ...
- 20145304 Java第八周学习报告
20145304<Java程序设计>第八周学习总结 教材学习内容总结 NIO NIO使用频道来衔接数据节点,在处理数据时,NIO可以让你设定缓冲区容量,在缓冲区中对感兴趣的数据区块进行标记 ...
随机推荐
- Python2.7 urlparse学习
urlparse模块主要是把url拆分为6部分,并返回元组.并且可以把拆分后的部分再组成一个url.主要有函数有urljoin.urlsplit.urlunsplit.urlparse等. urlpa ...
- 使用httpClient下载网页
HttpCore 对HTTP协议客户端编程做了一些基本的封装.例如,格式化请求头和解析响应头.LineF ormatter用来格式化请求头信息,而实际的实现在BasicLineF ormatter 上 ...
- Wiki 标记语言(Fitnesse)
- Junit使用注意点
注意点 1. 使用了@BeforeClass后@Ignore将会失效
- PhpStorm插件之CodeGlance
安装插件 File->Setting->Pluugins 搜索 CodeGlance 如何使用 安装完插件后,RESTART IDE,随便打开一个文件都可看到效果
- 用spin和edit控件来用spin控制edit里面小数的增减
1.响应SPIN的消息,就是点SPIN的上键头和下键头的消息,在这个消息里改变值是以0.1步进量增减.2.使用UpdateData(FALSE)来更新EDIT的关联的double型的变量. 创建步骤 ...
- java读取properties文件的配置信息
项目开发中,我们一般来向 application.properties 文件中放一些全局配置变量,以便程序中读取使用,本篇内容来演示从properties配置文件中读取键值. 当然,我们不一定写入 a ...
- 多线程Demo1 了解
首先演示一下主线程的阻塞 // DYFViewController.m // 623-01-阻塞多线程 // // Created by dyf on 14-6-23. // Copy ...
- Maven多模块构建实例
创建coffee-parent项目 New->Maven Project 创建coffee-web项目 右键coffee-parent项目->New->Project... 注意:需 ...
- 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}进 ...