Maven 简介
1. Maven 是什么
a) 单词含义
知识的积累、专家、内行。
b) 本文含义
跨平台的项目管理工具,主要服务于 Java 平台的项目构建、依赖管理和项目信息管理,
无论小型开源项目,还是大型企业级应用,无论是传统的瀑布式开发,还是流行的敏捷模式,
Maven 都能大显身手。
2. 构建是什么
工作中大部分时间都会花销在构建上,如果所有的构建工作都需要手动去完成,
在软件企业来说成本非常大,让软件完全自动化的完成这一系列工作,
一条简单的指令就可以像流水线一样,让烦琐简化。
a) 清理(claen)
b) 编译(compile)
c) 单元测试(test)
d) 生成文档(doc)
e) 打包(jar、war)
f) 部署(deploy)
3. Maven 的优秀
最大化的消除了构建的重复,抽象了构建生命周期,从清理、编译、测试到生成报告,
再到打包和部署,只需要简单的配置,输入简单的指令,Maven 就可以帮我们处理那些烦琐的任务。
a) 最大化消除构建重复(一键完成构建)
b) 依赖管理,仓库管理
c) 平台无关性
d) 大量的现有成熟插件
e) 抽象构建生命周期模型
f) 标准化构建过程(促进项目团队的标准化,约定优于配置)
g) 免费的中央仓库
4. 为什么需要 maven
Maven 不是 Java 领域唯一的构建管理解决方案。
a) IDE 不是万能的
i. IDE 依赖大量的手工操作(即效率低,容易出错)
ii. 很难统一所有人的 IDE 配置(每个人喜好不同)
b) Make
i. 强大之处在于可以调用所有系统的本地命令(Unix/Linux)
ii. 很难实现跨平台的构建(对 Java 很不友好)
iii. 语法容错率低(空格)
c) Ant
i. 过程式的显示指定目标,不同项目需要编写不同 build.xml(重复)
ii. 没有依赖管理(需要借助 Ivy 管理依赖)
d) 不重复发明轮子
i. 很少人说我不用 Spring,我自己实现 IOC
ii. 很少人说我不用 Hibernate,我自己封装 JDBC
e) 趋势
i. 大多数开源项目
ii. 大多数企业级应用