为什么需要Maven

真的需要maven吗?

     Maven是干什么用的?我们知道即使不使用Maven,我们仍然可以进行B/S结构项目的开发。从表述层、业务逻辑层到持久化层再到数据库都有成熟的解决方案--不使用Maven我们一样可以开发项目啊​


误区:Maven并不是直接用来辅助编码的,它战斗的岗位并不是以上各层。所以我们有必要通过企业开发中的实际需求来看哪些方面是我们现有技术的不足。

Maven究竟是什么?

为什么要是用Maven呢?他能帮助我们解决什么问题?

①添加第三方jar包

       在今天的JavaEE开发领域,有大量的第三方框架和工具可以提供我们使用。要是用这些jar包最简单的方法就是复制粘贴到WEB-INF/bin目录下。但是这会导致每次创建一个新的工程就需要将jar包重复复制到lib目录下,从而造成工作区中存在大量的重复文件,让我们的工程显得很臃肿。

       而使用Maven后每个jar包本身只在本地仓库中保存一份,需要jar包的工程只需要以坐标的方式简单的引用一下就可以。不仅极大的节约了存储空间,让项目更加轻巧,要避免了重复文件太多而造成的混乱。

②jar包之间的依赖关系

      jar包往往不是孤立存在的,很多jar包都需要在其他jar包的支持下才能够正常工作,我们称之为jar包之间的依赖关系。最典型的例子就是:commons-fileupload-1.3.jar依赖于commons-io-2.0.1.jar,如果没有IO包,FileUpload包就不能正常工作

     那么问题来了,你知道你所使用的jar包的依赖关系吗?当你拿到一个新的从未使用过的jar包,你如何得知他需要哪些jar包的支持呢?如果不了解这个情况,导入的jar包不够,那么现有的程序就不能正常工作。在进一步,当你的项目中需要用到上百个jar包时,你还会认为的,手工的逐一确认他们依赖的jar包吗?这简直是不可想象的。

     而引入了Maven后,Maven就可以替代我们自动的将当前jar包所依赖的其他所有jar包全部导入进来,无需人工参与,节约了我们大量的时间和精力。用实际例子来说明就是:通过Maven导入commons-fileupload-1.3.jar后,commons-io-2.0.1.jar会被自动导入,程序员不必了解这个依赖关系。

    下图是Spring所需jar包的部分依赖关系

③获取第三方jar包

     JavaEE开发中需要使用到的jar包种类繁多,几乎每个jar包在其本身的官网上的获取方式都不尽相同。为了查找一个jar包找遍互联网,身心俱惫,没有经历过的认或许体会不到这种折磨。不仅如此,费尽心思找的jar包里有的时候并没有你需要的那个类,又或者有同名的类没有你要的方法——以不规范的方式获取的jar包也往往是不规范的。

     使用Maven我们可以享受一个完全统一的jar包管理体系。你只需要在你的项目中以坐标的方式依赖一个jar包,Maven就会自动从中央仓库进行下载,并同时下载这个jar包所依赖的其他jar包——规范、完整、准确!一次性解决所有问题!

 

④将项目拆分成多个工程模块

     随着JavaEE项目的规范越来越庞大,开发团队的规模也与日俱增。一个项目上千人的团队持续开发很多年对于JavaEE项目来说再正常不过。那么我们想象一下:几百人上千人的开发的项目是同一个web工程。那么架构师、项目经理该如何划分项目的模块、如何分工呢?这么大的项目已经不可能通过package结构来划分模块,必须将项目拆分成多个工程协同开发。多个模块工程中有的是Java工程,有的是web工程。

    那么工程拆分后又如何进行互相调用和访问呢?这就需要用到Maven的依赖管理机制。

发布了246 篇原创文章 · 获赞 22 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/gjs935219/article/details/104457533