理解一:
先不说maven,也不说java开发,先说做菜,你可能像做个红烧小排(HongshaoxiaopaiApp),你需要的材料是:
- 小排(xiaopai.jar),要小猪的(version=little pig)。
- 酱油(jiangyou.jar),要82年的酱油(version=1982)
- 盐(yan.jar)
- 糖(tang.jar),糖要广东产的(version=guangdong)
- 生姜(shengjiang.jar)
- 茴香(huixiang.jar)
于是,你要去菜场买小排,去门口杂货店买酱油,买盐……可能你家门口的杂货店还没有1982年的酱油,你要去3公里外的农贸市场买……你买原材料的过程估计会很痛苦,可能买到的材料不是1982年的,会影响口感。
在你正式开始做小排前,你会为食材的事情,忙得半死。
现在有个超市出了个盒装版的半成品红烧小排,把生的小排,1982年的酱油,盐,广东产的糖等材料打包成一个盒子里,你回家只要按照说明,就能把红烧小排做出来,不用考虑材料的来源问题。
Maven就是那个超市,红烧小排就是你要开发的软件,酱油、盐什么的就是你开发软件要用到的jar包——我们知道,开发java系统,下载一堆jar包依赖是很正常的事情。有了maven,你不用去各个网站下载各种版本的jar包,也不用考虑这些jar包的依赖关系。Maven会给你搞定,就是超市的配菜师傅会帮你把红烧小排的配料配齐一样。
现在你应该明白Maven是做什么的了吧。
理解二:
网上一般说maven是一个构建工具,其实是说得很准确的,不过我觉得更准确的说法应该是一个自动化的构建工具。
你可以这样说:不用maven的时候所有的jar都不是你家的,需要去各个地方下载拷贝,用了maven所有的jar包都是你家的,想要谁,叫谁的名字就行。(对小白而言,一个用来下载别人现成代码块的工具)