Maven个人理解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Maven简介:
Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。当你使用Maven的时候,你用一个明确定义的项目对象模型来描述你的项目,然后Maven可以应用横切的逻辑,这些逻辑来自一组共享的(或者自定义的)插件。
Maven主要服务于基于Java平台的项目构建、依赖管理和项目信息管理。
Maven工作原理:
Maven主要通过每个项目制定的pom.xml文件来管理项目的各种信息和特性。Maven把每个项目看成一个对象,通过pom.xml来定义这个对象的属性。每个项目都有自己的pom.xml,这样项目间的继承和依赖在pom.xml就表现为对象的继承和依赖,这点特别适合大型项目的部署。Maven还内置了一个super pom,所有的pom都继承自这个super pom,这样即使项目的pom.xml里看起来没有定义什么特性,这个项目也能执行基本的build逻辑。而当项目定义了自己的build逻辑时,就会自动覆盖父类POM的相应逻辑。
Maven采用远程仓库和本地仓库以及一个类似build.xml的pom.xml,将pom.xml中定义的jar文件从远程仓库下载到本地仓库,各个应用使用同一个本地仓库的jar,同一个版本的jar只需下载一次,而且避免每个应用都去拷贝jar。
Maven使用:
使用流程:(主要命令:mvn clean compile、mvn clean test、mvn clean package、mvn clean install)
1、编写POM,即配置pom.xml(定义了项目的基本信息,用于描述项目如何构建,声明项目依赖,等等);
2、编写主代码(项目的主代码会被打包到最终的构件中);
3、编写测试代码(使用JUnit);
4、打包和运行(封装到本地仓库中,其它的Maven也可以使用);
(使用Archetype生成项目骨架,可以快速勾勒项目结构)
Maven优缺点:
优点:
Maven是一个异常强大的构建工具,能够帮我们自动化构建过程,从清理、编译、测试到生成报告,再到打包和部署;
Maven是跨平台的,这意味着无论是在Windows上,还是在Linux或者Mac上,都可以使用同样的命令;
Maven最大化地消除了构建的重复,抽象了构建生命周期,并且为绝大部分的构建任务提供了已实现的插件,我们不再需要定义过程,甚至不需要再去实现这些过程中的一些任务;Maven能帮助我们标准化构建过程,这极大地避免了不必要的学习成本,而且有利于促进项目团队的标准化;
缺点:
Maven中Pom.xml文件包含内容太过于繁杂;
Maven对于网络的依赖性太强;
Maven的文档太少,学习起来比较困难;
Maven仓储中的jar包会发生变化。