PPT 链接:ptteng.github.io/PPT/PPT-java/java_task02_maven.html#/
视频链接:v.qq.com/x/page/l0524s37kgr.html
大家好,我是IT修真院北京分院第21期的学员韦琦,一枚正直纯洁善良的java程序员。
今天给大家分享一下,修真院官网Java任务2,深度思考中的知识点————
了解maven的module
1.背景介绍
我们在做任务的时候,Dao层,serverce层,Controller层都是放在一个项目里。用Maven管理的真实的项目都应该是分模块的,每个模块都对应着一个pom.xml。它们之间通过继承和聚合(也称作多模块,multi-module)相互关联。
2.知识剖析
1.这个应用可能需要有一个前台和一个后台管理端(web或者swing),你发现大部分dao,一些service,和大部分util是在两个应用中可。这样的问题,你一周内遇到了好几次。
2.pom.xml中的依赖列表越来越长以重用的,但是,由于目前只有一个项目(WAR),你不得不新建一个项目依赖这个WAR,这变得非常的恶心,因为在Maven中配置对WAR的依赖远不如依赖JAR那样简单明了,而且你根本不需要org.myorg.app.web。有人修改了dao,提交到svn并且不小心导致build失败了,你在编写service的代码,发现编译不过,只能等那人把dao修复了,你才能继续进行,很多人都在修改,到后来你根本就不清楚哪个依赖是谁需要的,渐渐的,很多不必要的依赖被引入。甚至出现了一个依赖有多个版本存在。
3.build整个项目的时间越来越长,尽管你只是一直在web层工作,但你不得不build整个项目。
某个模块,比如util,你只想让一些经验丰富的人来维护,可是,现在这种情况,每个开发者都能修改,这导致关键模块的代码质量不能达到你的要求。
我们会发现,其实这里实际上没有遵守一个设计模式原则:“高内聚,低耦合”。虽然我们通过包名划分了层次,并且你还会说,这些包的依赖都是单向的,没有包的环依赖。这很好,但还不够,因为就构建层次来说,所有东西都被耦合在一起了。因此我们需要使用Maven划分模块。
3.常见问题
core包更改,其它依赖模块能否更新?
分模块之后不会出现之前的修改依赖包build整个项目,只需要update一下?
---------------------------------------------------------------------------------------------------------------------------------------
技能树.IT修真院“我们相信人人都可以成为一个工程师,现在开始,找个师兄,带你入门,掌控自己学习的节奏,学习的路上不再迷茫”。这里是技能树.IT修真院,成千上万的师兄在这里找到了自己的学习路线,学习透明化,成长可见化,师兄1对1免费指导。快来与我一起学习吧~我的邀请码:10178606,或者你可以直接点击此链接:jnshu.com/login/1/10178606