【从零开始】【Java】【3】改造成多模块项目
闲聊
前几天还是太懒惰了,毕竟也是世界杯期间嘛,可以自我理解的,嘿嘿。
毕竟是从头开始,但是不一定适合所有新入门的人,所以搭框架啊、引入框架什么的,是占据最开始时间比较多的,代码层面的,可能要到靠后面一点了。
开始
初衷
说白了就是多模块的好处。
查了网上,无非是方便分工,方便拓展;
自己干活中体会是:
- 加快效率:比如想找个数据库相关的,直接就去DAO模块了,当然谁写到其他模块了的话,那就是一顿臭骂了吧。
- 和框架结合:比如web项目,就可以和mvc框架结合的很好啊;
- 看起来爽:看着清爽,虽然不是处女座,但依然是清爽的舒服;
操作
本来没有ide的话,还会麻烦些,但现在ide真的是强大;
不过跟大家说下注意的吧:整个都是文件夹结构的变化而已!!!!注意本质哦,这样脱离了ide,搞这些还是很简单的;
用ide的话,直接在项目名右键,新,module就行了;
这里不用模板,直接下一步,然后填名称,建议有个统一的前缀,更舒服;
后面就是体验ide强大了:
- 每个module中都会有一个pom文件,会发现这个pom文件的artifactId就是module的名字;另外会有parent标签,指向父pom文件,也就是原始的pom文件;
- 最外层,也就是以前那个pom文件中,标签由jar变为pom文件,也就是说这不在是单一jar包的pom文件,而是整个项目的被继承的文件;
- 另外,父pom文件中出现标签,指向他的“儿子们”,和子pom文件中的parent遥相呼应,自行体会吧;
除此以外,还需要人工改造下父pom文件,其实就是加入标签,以管理多模块的依赖;
这篇写的比较详细:Maven实战(六)--- dependencies与dependencyManagement的区别
大概就是说:
- dependencyManagement只是声明,在父pom中出现,然后子pom需要依赖那个,就在子pom中的dependencies中依赖(最好不要写版本号)
- dependencies:父pom中的,加入写了,就表明所有子pom都依赖改包,子pom中无需再重复依赖;
所以使用起来最好规范下(对,说的就是我们不规范的,manage和dependencies中写两份...)
最后给出我现在的项目结构,以及父pom截图(子pom你们自己尝试吧)


结束
总结下:
- 多模块开发一个项目,分块使得效率更高;
- 搞清楚父子pom文件以及依赖管理;
【从零开始】【Java】【3】改造成多模块项目的更多相关文章
- 【Java】 Maven多模块项目上传到Sonar扫描问题合集
上传到Soanr时,项目有单元测试数,但是覆盖率为0 修改pom.xml <plugin> <groupId>org.apache.maven.plugins</grou ...
- Java秒杀系统实战系列~构建SpringBoot多模块项目
摘要:本篇博文是“Java秒杀系统实战系列文章”的第二篇,主要分享介绍如何采用IDEA,基于SpringBoot+SpringMVC+Mybatis+分布式中间件构建一个多模块的项目,即“秒杀系统”! ...
- java分模块项目在idea中使用maven打包失败(ps:maven常用到的命令)
一.分模块项目打包失败 情况:项目是分模块创建的,一些公共的方法是单独的一个模块common,其他模块依赖于此模块,poom依赖已经添加了,项目可以正常运行,但使用maven打包时出现了问题:找不到依 ...
- IntelliJ IDEA中创建Web聚合项目(Maven多模块项目)
Eclipse用多了,IntelliJ中创建Maven聚合项目可能有小伙伴还不太熟悉,我们今天就来看看. IntelliJ中创建普通的Java聚合项目相对来说比较容易,不会涉及到web操作,涉及到we ...
- 38.IntelliJ IDEA中创建Web聚合项目(Maven多模块项目)
转自:https://blog.csdn.net/u012702547/article/details/77431765 Eclipse用多了,IntelliJ中创建Maven聚合项目可能有小伙伴还不 ...
- IntelliJ IDEA中创建Web聚合项目(Maven多模块项目)(转载)
创建parent项目 1.打开IDEA,注意这里不要勾选模板,用模板创建过maven项目的小伙伴都知道模板创建项目非常慢,所以这里不要选模板,需要的文件夹我们后面自己来创建就可以了.所以这个页面直接点 ...
- SSH框架之一详解maven搭建多模块项目
闲来无事,思量着自己搭建一个ssh框架,一来回顾熟悉一下ssh的内容,hibernate还就没用过了,生疏了都.二来整合一下,将其他掌握的和正在学习的框架核技术糅合到一起,就当是做一个demo练手了. ...
- Java 9 揭秘(4. 模块依赖)
文 by / 林本托 Tips 做一个终身学习的人. 在此章节中,主要学习以下内容: 如何声明模块依赖 模块的隐式可读性意味着什么以及如何声明它 限定导出(exports)与非限定导出之间的差异 声明 ...
- Spring boot 多模块项目 + Swagger 让你的API可视化
Spring boot 多模块项目 + Swagger 让你的API可视化 前言 手写 Api 文档的几个痛点: 文档需要更新的时候,需要再次发送一份给前端,也就是文档更新交流不及时. 接口返回结果不 ...
随机推荐
- 洛谷P1339 [USACO09OCT]热浪Heat Wave
思路:裸SPFA过一遍(建议使用邻接链表存储),无向图,无向图,无向图,重要的事情要说三遍!!!蜜汁RE是什么鬼????第九个点数组开到20K,第十个点数组开到30K才AC.或许我代码写的有bug?( ...
- [luogu4478 BJWC2018] 上学路线 (容斥原理+拓展lucas)
传送门 Description 小B 所在的城市的道路构成了一个方形网格,它的西南角为(0,0),东北角为(N,M). 小B 家住在西南角,学校在东北角.现在有T 个路口进行施工,小B 不能通过这些路 ...
- greenplum资源队列
1.创建资源队列语法 Command: CREATE RESOURCE QUEUEDescription: create a new resource queue for workload m ...
- Python列表、集合与字典(3)
目录 一.列表 二.集合 三.字典 一.列表 1. 列表初识 列表的使用为处理特定顺序排列的数据提供了便利,列表元素可以是字母.数字或者其他信息,同时所加元素之间不存在任何关系. 在Pytho ...
- VC2010常见问题的解决方案
vc++里面的obj文件是什么文件Project(项目)中每个cpp经编译成为obj(object)目标文件,所有obj文件和资源文件经链接(link)成为可执行文件,obj文件可称为目标文件或中间文 ...
- C#的WaitHandle : 管理多线程状态
有时候,我们创建了多线程,需要知道是否都完成了各自的工作.比如说,开启了多线程的下载,如何终止所有的线程并且在确保所有线程都终止之后才继续执行程序的退出呢? public partial class ...
- 修改oracle客户端的字符集
客户端字符集环境select * from nls_instance_parameters,其来源于v$parameter, 表示客户端的字符集的设置,可能是参数文件,环境变量或者是注册表 方法有 : ...
- 【基于Android的ARM汇编语言系列】之五:ARM指令集与Thumb指令集
作者:郭嘉 邮箱:allenwells@163.com 博客:http://blog.csdn.net/allenwells github:https://github.com/AllenWell [ ...
- SVNserver搭建和使用(二)
上一篇介绍了VisualSVN Server和TortoiseSVN的下载,安装,汉化.这篇介绍一下怎样使用VisualSVN Server建立版本号库,以及TortoiseSVN的使用. 首先打开V ...
- iOS8 tableView的Cell高度自适应开发
1.在- (void)viewDidLoad中设置: //估计高度为81 self.tableView.estimatedRowHeight = 81.0f; //自适应高度 self.tableVi ...