Maven基础
内容来自GeekHour的一小时Maven教程和官方文档
Maven简介
Maven是由Apache软件基金会开源的一个自动化构建项目,主要是用来解决Java项目中最常见的两个问题,依赖管理和项目构建。
Maven解决的第一个问题是依赖管理,我们只需要在一个叫做POM的xml文件中,告诉Maven我们需要哪些依赖,然后Maven就会将Jar包以及它所依赖的所有其他的Jar包全部都下载并导入到项目中。
解决的另一个问题是构建管理,在Java项目中,我们需要把Java的源文件编译成字节码文件,然后再把字节码文件打包成一个可执行的Jar包或War包,如果没有自动化构建工具的话,这个过程就会非常的繁琐。Maven提供了一个标准的项目结构和构建流程,只需要按照这个标准来组织项目,就可以非常轻松方面的执行构建,打包和部署等工作。
Maven的核心概念是项目对象模型,也就是POM,它是一个XML文件,也是Maven项目的核心文件,定义了项目的配置,依赖,插件以及构建的过程。 Maven读取pom.xml文件之后会根据这个文件中定义好的规则去下载依赖包,然后编译工程中的源代码,最后将工程大包成一个可执行的jar包或者war包,这个过程中会有很多的插件来帮助我们完成这些工作,比如编译插件,打包插件,测试插件等等,这些插件都是maven提供的,我们只需要在pom.xml中配置一下就可以了,maven会自动的去执行这些插件,完成整个编译的过程。
在maven中有一个仓库的概念,简单来说就是存放jar包的地方,按照作用范围的不同,可以分为本地仓库,远程仓库和中央仓库。本地仓库就是我们自己电脑上的一个目录,一般默认是在家目录下的.m2这个目录里面,这个位置可以在maven的配置文件中修改。远程仓库也叫私服仓库,一般是公司或组织内部搭建的一个仓库,用来给内部的项目提供统一的依赖管理,这样就可以避免jar包的重复下载,而且也可以把公司或组织发布的私有的jar包放到这个仓库里面,供其他项目使用,比较常见的有nexus-repository-oss和reposilite。中央仓库就是maven官方维护的一个仓库,所有开源的jar包都可以在中央仓库里面找到,maven在下载依赖的时候会首先去本地仓库中查找,如果没有的话,那么再去远程仓库和中央仓库查找和下载,下载完成之后就会放到本地仓库里面,下次再使用的时候就可以直接从本地仓库中获取,而不需要再次去远程仓库或者中央仓库下载了,这样避免了重复下载,提高了构建的效率。






