Maven 简介
何为Maven
Apache Maven 是apache下的一个开源项目,是纯java开发的,并且用来管理java项目,它是基于项目对象模型(POM,Project Object Model)的项目管理工具,Maven可以构建项目,生成报告和文档说明。
什么是构建
构建就是从源代码生成用户可以使用的目标,目标可以包括库、可执行文件或者脚本等等,比如:java项目的构建是源代码开始,编译 、测试、运行、打包、部署、运行的过程;常见的构建工具:Make、Ant、Maven;同时IDE工具也集成了构建工具
Maven是优秀的构建工具
-
提供统一的构建系统
Maven使用其标准的项目对象管理模型(POM)和一组插件来构建项目,一旦熟悉maven项目,就知道所有Maven项目是如何够条件的,这样可以提升开发效率
-
简化构建过程
虽然使用Maven不会消除对底层机制的了解,单Maven确实使我们开发人员避免许多细节的影响
-
提供优质的项目信息
项目的依赖管理
交叉引用来源
单元测试报告
为什么用Maven
开篇中介绍到常见的构建工具有:Make、Ant、Maven,那我们就说说这三种构建工具,为什么用Maven
Make
它本身确实很强大,可以利用所有系统的本地命令快速高效的完成任务,然而Make它是和系统绑定的,不是跨平台的,同时Makefile的一些语法出错很难排查,Make 是一个过程式的,需要开发人员指定每一个目标,以及完成该目标需要执行的任务,针对每一个项目,开发者都需要重写编写这一个过程。
Ant
由于使用了java,因此可以看做是一个跨平台的Make
,最早的Ant
是没有依赖管理的,现在用户可以借助Lvy
来管理依赖
Maven
提供统一的构建系统,能快速构建成熟的系统,它是基于java编写的可以实现跨平台,同时还能够得到Maven社区的大量支持,并且它是开源、免费的;Maven
是声明式的,项目构建过程和各阶段所需要的工作都是外部插件来完成,开发者只需要声明项目的基本元素,Maven
就可以执行内置的完整过程,在很大程度上消除的重复,避免错误,Maven
不仅有依赖管理,可能拥有全球java开源项目最多的中央仓库。
Maven与极限编程
极限编程可能是敏捷开发中最富有成效的方法之一,它有4个核心价值观:沟通
(Communication)、简单
(Simplicity)、反馈
(Feedback)、勇气
(Courage),还有一个扩展的第五个价值观 遵重
(Respect)
Maven如何帮助XP团队实现一些核心价值:
-
简单
Maven暴露了一组一致的、简单的接口,帮助团队成员从原来的高度自定义的、复杂的构建系统中解脱出来,使用Maven现有的成熟的,稳定的组件也能简化构建系统的复杂度 -
交流与反馈
与版本控制系统结合后,所有人员都能执行最新的构建并快速得到反馈 -
测试驱动开发(TDD)
TDD强调测试先行,所有的产品应该由测试用例覆盖,而测试是Maven构建生命周期中最重要的组成部分之一,并且Maven有现成的成熟插件支持业内框架的测试,如JUnit和TestNG -
十分钟构建
十分钟构建强调我们能够随时快速的从源码构建出最终的产品,这恰恰是Maven所擅长的,只需要一些简单的配置,之后用一条简单的命令就能让Maven帮你从清理、编译、测试、打包、部署等到最终的产品 -
持续集成(CI)
CI的前提是源码管理系统和构建系统,使用Maven
会更加方便
参考:https://maven.apache.org/
参考:https://www.cnblogs.com/baizihua/p/11519509.html
参考:《Maven实战》这本书