(八)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可以让你设定缓冲区容量,在缓冲区中对感兴趣的数据区块进行标记 ...
随机推荐
- Flutter实战视频-移动电商-62.购物车_首页Provide化 让跳转随心所欲
62.购物车_首页Provide化 让跳转随心所欲 新建provide/currentIndex.dart 内容比较简单,定义一个变量当前页面的索引currentIndex,再定义一个方法改变它的值 ...
- Axure RP 7.0 标准教程(1)
一. Axure RP 标准教程 1. 为什么学习 增加沟通效率
- C++内存泄漏检测
CRT检测 定位内存泄漏位置 #include "stdafx.h" #ifdef _DEBUG #define DEBUG_NEW new( _NORMAL_BLOCK, __F ...
- 51nod1625(枚举&贪心)
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1625 题意:中文题诶- 思路:枚举+贪心 一开始写的行和列同时 ...
- autoResizing autoLayout和sizeClass
原文网址: http://www.cnblogs.com/cxbblog/p/4166876.html 1. autoResizing autoresizing是苹果早期的ui布局适配的解决办法,iO ...
- C#主从表查询
软件的使用必然涉及到主表和子表的操作,我们先在SQLite中创建子表.比如 创建一学生信息表做主表,再创建一个学生成绩表做子表.然后我们在程序中成绩 方法来连接子表. 判断bindingsource中 ...
- 单片机的C语言中位操作用法2
单片机的C语言中位操作用法 在对单处机进行编程的过程中,对位的操作是经常遇到的.C51对位的操控能力是非常强大 的.从这一点上,就可以看出C不光具有高级语言的灵活性,又有低级语言贴近硬件的特点. 这也 ...
- extern用法详解(转)
1 基本解释 extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义. 另外,extern也可用来进行链接指定. 2 问题:ext ...
- G - You Are the One(需要重想一遍)
#include <iostream> #include <algorithm> #include <cstring> #include <cstdio> ...
- iOS开发 - 多线程实现方案之GCD篇
GCD概念 GCD为Grand Central Dispatch的缩写,纯c语言编写,是Apple开发的一个多核编程的较新的解决方法.它主要用于优化应用程序以支持多核处理器以及其他对称多处理系统.它是 ...