欢迎来到天天文库
浏览记录
ID:40560352
大小:702.01 KB
页数:35页
时间:2019-08-04
《Maven基础大全及在eclipse中配置》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、一、Maven基础介绍Maven,发音是[`meivin],"专家"的意思。它是一个很好的项目管理工具1.maven不是什么读书时候要先限定范围,避免一些有害的遐想。要说maven不是什么,我们可以从如下几个要点来展开1.maven不是ant,也不是make。我们以前接触的构建工具,需要写一些详细的步骤,比如:compileproject1/src/*.java等类似的语句。这些语句正是我们使用ant和make所要编写的东西。maven采用了"约定优于配置"的方法,一些开发常用的操作和步骤已经固化在maven中
2、,所以使用者不再需要去编写那些烦人的语句了。同时,maven内置了开发流程的支持,它不仅能够编译,同样能够打包、发布,也能够一气呵成做完这些所有的步骤。2.maven不是ivy依赖管理是maven的功能之一,虽然很多人包括我以前都是只用它的依赖管理功能,但是要深入运用的话,我们就可以看到更多的内容。更重要的是,maven在依赖关系中加入了scope的概念,进一步细化了依赖关系的划分。2.maven是什么maven将自己定位为一个项目管理工具。它负责管理项目开发过程中的几乎所有的东西:1.版本maven有自己的版
3、本定义和规则2.构建maven支持许多种的应用程序类型,对于每一种支持的应用程序类型都定义好了一组构建规则和工具集。3.输出物管理maven可以管理项目构建的产物,并将其加入到用户库中。这个功能可以用于项目组和其他部门之间的交付行为。4.依赖关系maven对依赖关系的特性进行细致的分析和划分,避免开发过程中的依赖混乱和相互污染行为1.文档和构建结果maven的site命令支持各种文档信息的发布,包括构建过程的各种输出,javadoc,产品文档等。2.项目关系一个大型的项目通常有几个小项目或者模块组成,用mave
4、n可以很方便地管理3.移植性管理maven可以针对不同的开发场景,输出不同种类的输出结果。1.maven的生命周期maven把项目的构建划分为不同的生命周期(lifecycle),在我看来,划分的已经是非常仔细了,大家可以参考这里。粗略一点的话,它这个过程(phase)包括:编译、测试、打包、集成测试、验证、部署。maven中所有的执行动作(goal)都需要指明自己在这个过程中的执行位置,然后maven执行的时候,就依照过程的发展依次调用这些goal进行各种处理。这个也是maven的一个基本调度机制。一般来说,
5、位置稍后的过程都会依赖于之前的过程。当然,maven同样提供了配置文件,可以依照用户要求,跳过某些阶段。三套生命周期 Maven拥有三套相互独立的生命周期,它们分别为clean,default和site。每个生命周期包含一些阶段,这些阶段是有顺序的,并且后面的阶段依赖于前面的阶段,用户和Maven最直接的交互方式就是调用这些生命周期阶段。以clean生命周期为例,它包含的阶段有pre-clean,clean和postclean。当用户调用pre-clean的时候,只有pre-clean得以执行,当用户调用c
6、lean的时候,pre-clean和clean阶段会得以顺序执行;当用户调用post-clean的时候,pre-clean,clean,post-clean会得以顺序执行。较之于生命周期阶段的前后依赖关系,三套生命周期本身是相互独立的,用户可以仅仅调用clean生命周期的某个阶段,或者仅仅调用default生命周期的某个阶段,而不会对其他生命周期产生任何影响。clean生命周期 clean生命周期的目的是清理项目,它包含三个阶段: 1)pre-clean执行一些清理前需要完成的工作。 2)c
7、lean清理上一次构建生成的文件。 3)post-clean执行一些清理后需要完成的工作。 default生命周期 default生命周期定义了真正构件时所需要执行的所有步骤,它是生命周期中最核心的部分,它包含的阶段如下: 1)validate验证项目是否正确和所有需要的相关资源是否可用 2)initialize初始化构建 3)generate-sources 4) process-sources处理源代码 5)generate-resour
8、ces 6) process-resources处理项目主资源文件。对src/main/resources目录的内容进行变量替换等工作后,复制到项目输出的主classpath目录中。 7)compile编译项目的主源代码 8)process-classes 9) generate-test-sources 10)process-t
此文档下载收益归作者所有