Maven简介
Maven是一个项目管理工具。它可以帮助程序员构建工程,管理jar包,编译代码,完成测试,项目打包等等。Maven工具是基于POM(Project Object Model,项目对象模型)实现的。在Maven的管理下每个项目都相当于是一个对象。Maven标准化了项目的构建。即对项目结构,构建命令等进行了标准化定义。Maven提供了一个免费的中央仓库,在其中几乎可以找到任何的流行开源类库。Maven是跨平台的,在Windows、Linux、Mac上,都可以使用同样的命令。
Maven的作用
一键构建我们的项目往往都要经历编译、测试、运行、打包、安装,部署等一系列过程,这些过程称之为构建。通过Maven工具,可以使用简单的命令轻松完成构建工作。依赖管理传统的Web项目中,我们必须将工程所依赖的jar包复制到工程中,导致了工程的变得很大。如果一个公司具有相同架构的项目有十个,那么就需要将这一份jar包复制到十个不同的工程中,非常浪费资源。同样的项目内容,传统Web项目大小如下:
而使用Maven构建的项目大小如下:
这说明了传统Web项目中大部分磁盘空间是被jar包占据,而Maven项目中一定没有jar包,那没有jar包的项目是怎么运行的呢?
maven工程中不直接将jar包导入到工程中,而是有一个专门存放jar包的仓库,仓库中的每个jar包都有自己的坐标。maven工程中只要配置jar包坐标即可,运行项目需要使用jar包时,根据坐标即可从maven仓库中拿到jar包即可运行。
Maven的安装
安装解压下载好的安装文件,解压后目录结构如下
bin:存放maven的命令boot:存放maven本身的引导程序,如类加载器等conf:存放maven的配置文件lib:存放maven本身运行所需的jar包配置环境变量由于Maven是由Java语言开发的,运行时依赖Java环境,所以要在计算机的环境变量中配置JAVA_HOME
Maven工程的类型和结构
Maven工程类型POM工程POM工程是逻辑工程,Maven并不会对该类型工程做打包处理,这些工程往往不包含具体的业务,而是用来整合其他工程的。
JAR工程普通Java工程,在打包时会将项目打成jar包。
WAR工程JAVA Web工程,在打包时会将项目打成war包。Maven工程结构接下来我们通过一个WAR工程学习Maven工程的结构文件目录结构:
maven有三套相互独立的生命周期。分为是构建生命周期,clean生命周期(清理构建后的文件)、site生命周期(生成项目报告)。作为开发人员我们一般重点学习构建生命周期即可。