Maven简介
大约 3 分钟
软件是一个工程
软件工程:为了能够实现软件的流水线式生产,在设计和构建软件时能够有一种规范和工程化的方法,人们便提出了软件工程概念。
软件开发需要编译代码—>开发人员自己测试代码—>把代码打包—>部署项目到测试服务器—>测试人员测试 功能—>测试测试出 bug。
开发人员需要修改bug—>开发人员自己测试代码—>把代码打包—>部署项目到测试服务器—>测试人员测试功 能—>直到符合功能要求。
其中很大部分是重复工作,大型项目中有很多的配置文件、jar 文件、多个子项目等等,会耗费极大的开发时间,因此,为了高效率地进行开发,需要一个软件管理(构建)工具来处理这其中的重复劳动,解放开发人员,将精力集中在实际的开发上。
Maven
Maven 是 Apache 软件基金会组织维护的一款自动化构建工具,专注服务于 Java 平台的项目构建和依赖管理。
其他的自动化构建工具还有:Ant, Maven, Gradle 等。(Maven是主流)
- Maven 这个单词的本意是:专家,内行。读音是['meɪv(ə)n]或['mevn]。
官网:http://maven.apache.org/ 。
一个Java项目的开发过程
分析项目要做什么,知道项目有哪些组成部分。
设计项目:通过哪些步骤,使用哪些技术,需要多少人, 多长的时间。
组建团队,招人, 购置设备,服务器, 软件, 笔记本。
开发人员编写业务代码。 开发人员需要测试自己写代码。 重复多次的工作。
测试人员,测试项目功能是否符合要求。
测试开发人员提交测试代码 -- 如果测试有问题 --> 开发人员修改 --> 再提交代码给测试 --> 测试人员再测试代码 --> ... --> 直到测试代码通过。
传统项目开发存在的问题
- 一个项目做成一个工程,造成工程比较庞大,需要使用多模块来划分项目;
- 项目中需要的数量众多的 jar 包,需要手动下载并引入,并且多个项目需要的 jar 包存在重复的问题;
- 项目中需要的 jar 包有版本兼容的问题,需要手动解决;
- 项目中需要的 jar 包又依赖其它的 jar 包,需要手动解决。
- 使用 Maven 等自动化构建工具,可以将这些项目间依赖关系实现的细节托管出去,而不用手动处理。
使用 Maven 的优势
Maven 是目前最流行的自动化构建工具,对于生产环境下多框架、多模块整合开发有重要作用,Maven 是一 款在大型项目开发过程中不可或缺的重要工具。
- Maven 可以整合多个项目之间的引用关系,我们可以根据业务和分层需要任意拆分一个项目;
- Maven 能规范地管理各个常用 jar 包及其各个版本,并且可以自动下载和引入项目中;
- Maven 可以根据指定版本自动解决 jar 包版本兼容问题;
- Maven 可以把 jar 包所依赖的其它 jar 包自动下载并引入项目。
安装 Maven
- 从官网下载并解压,解压后即为maven的安装目录。(路径不要出现中文)
- 创建一个环境变量
M2_HOME,它的值maven工具的安装目录; - 为了方便maven命令的使用,需要把
%M2_HOME%\bin目录加入到path之中。
- Maven 还需要
JAVA_HOME的环境变量。这个环境变量不是 Maven 独享的,也是 tomcat 等需要的。
