学习maven,其实应该先谈一下关于构建JavaEE的项目。随着越来越深入的学习,我们都能感觉到,jar包越来越多,每次导入jar包的事件很长,项目加载的时间也很长。那么,这样的问题如何解决?
说白了就是共享。可以从面向对象的角度思索一下:
面向对象怎么来的?
从封装,到继承,最后多态与抽象。
封装解决了数据的冗余,继承解决了结构的冗余,多态和抽象解决了需求的冗余。
但凡出现冗余,就面临着资源浪费和效率低下,解决冗余的办法其实就是,将冗余部分抽取出来,放到某个地方,需要它的人可以随时去取,也就是说,尽可能只留下一份资源,可供多方使用。
maven其实就是这样的思路,将jar包集中在一个地方,我们称之为仓库。
我们每次都先查看本地仓库有木有自己想要的包,如果有的话,可以直接使用,如果没有的话,可以访问远程仓库(别人的本地仓库)或中央仓库(公共的仓库),在获得了自己所需jar包后,在本地仓库备份一份(这样下一次就可以直接使用)。
这个操作的核心就是,本地仓库只有一个,所有项目都访问这里来获取所需jar包,而不需要导包到项目中。