maven实战学习(一)----maven初探

第一次知道maven这个东西是在学习hadoop源码的时候,发现源码不同的文件夹下有许多pom.xml文件,编译的时候也要用到mvn相关命令。为了明白其中的工作原理,开始学习maven.把学习<<maven实战>>这本书的体会分享一下,希望共同学习,共同进步。

首先,需要知道maven是干什么的。简单来说,maven是一个构建工具,能够帮助我们完成项目的编译,清理,测试,生成报告,打包和部署。

单纯从构建功能来看,和make十分相似,熟练的使用make工具似乎也能完成这些任务。但是make很难跨平台构建(虽然也可以),另外,Makefile的语法格式比较复杂,不够直观,而maven是使用xml文件来描述相似的信息的。

除了构建功能外,maven还是一个强大的依赖管理工具和项目信息管理工具。

对于java这个大生态圈来说,使用各种类库是很平常的。解决它们之间的版本不一致,版本冲突,依赖等问题变得十分繁琐。maven通过对每一个构件(artifact,可以理解为一个模块,一个jar包)引入经纬,来对各种开源类库标识。基于这个基础,我们可以有效地解决依赖问题。

maven对项目的目录结构,测试用例命名等有既定的规则,遵循这些约定,用户在项目间切换的时候就免去了额外学习的成本,可以说是约定优于配置。

最后,maven的各种功能都是通过插件完成的.比如执行mvn clean来清除工程,使用的是clean插件。

同理还有用于编译的,用于测试的插件。这些插件都存放在maven的一个中央仓库里,首次执行mvn命令的时候,会去这个中央仓库下载所需的插件到~/.m2目录下。maven中央仓库除了有maven本身用到的插件外,还有许多现成的开源类库,可以根据项目的依赖下载所需的类库。


综上所述,maven是一个构建,依赖管理,项目管理工具。本身是通过不同的插件完成不同的功能的。这样我们对maven就有了一个整体的认识。

你可能感兴趣的:(maven,hadoop,spark,项目管理,大数据,makefile,跨平台)