1、什么是Maven
Maven的含义:Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。
Maven 是一个项目管理和整合工具。Maven 为开发者提供了一套完整的构建生命周期框架。开发团队几乎不用花多少时间就能够自动完成工程的基础构建配置,因为 Maven 使用了一个标准的目录结构和一个默认的构建生命周期。
在有多个开发团队环境的情况下,Maven 能够在很短的时间内使得每项工作都按照标准进行。因为大部分的工程配置操作都非常简单并且可复用,在创建报告、检查、构建和测试自动配置时,Maven 可以让开发者的工作变得更简单。
Maven的优势:自动构建,jar包依赖管理,契约编程
1.1、自动构建
使用Maven可以为我们完成很多相应的功能:清理代码,自动编译,完成测试,生成站点报告,进行打包(jar,war),项目部署。
清理代码:相当于我们运行clear的效果
自动编译:可以为咱们自动完成编译(类似于执行javac生成class文件)
完成测试:实现测试功能,帮咱们完成
生成报告:可以较为方便的实现对项目的管理
打包:普通项目打jar包,web项目打成war包
项目部署:只需要一句命令mvn jetty:run即可实现项目的部署
注意:使用jetty:run命令必需有相应的配置与插件
(Maven的命令很多,但不是你想用,想用就能用,有一些命令是需要有插件的)
1.2、Jar包依赖管理
咱们刚学过框架的集成,导包确实是一个比较痛苦的过程。特别是我们导入一个功能jar包,而它又依赖于其它的jar包【天啊,我怎么知道有哪些依赖包】,靠死记硬背,即花时间又没有太大的意义,而Maven完美的解决了这个问题,我们只需要导入功能包,它会为我们自动把对应的依赖包导入。
不过使用maven导包需要我们进行相应的xml配置(pom.xml),好吧,对初学者来说这个xml配置看起来也确实是比较麻烦,不过大家不用担心。等你学了Maven的仓库,一切都会变得easy起来。
1.3、契约编程
约定好项目的基本结构。咱们使用Maven,项目的结构就必需是Maven要求的结构,刚开始使用这种结构确实让人很别扭,但是,这种契约编程却让代码结构有统一的规范,让多人(多团队)开发变得更加的简单。
工具小知识
我们初学的时候写Java可以使用记事本,editplus等文本工具
但是开发的时候用了开发速度,咱们还是得使用一些专门的IDE(Eclipse,MyEclipse,NetBeans
IntelliJ IDEA等),不同的IDE的环境也是不同的。
同一个Maven结构的项目可以在各种不同的开发工具中运行。
2、Maven的安装与配置
2.1、安装JDK
JDK下载地址: http://www.oracle.com/technetwork/java/javase/downloads/index.html
注:安装的路径不要有中文,不要有空格
配置环境变量:要不全部配置到系统变量或者用户变量
配置JAVA_HOME:配置到JDK安装的根路径
配置PATH:不能把后面配置的内容清空
只要在Window系统path环境变量出现的exe程序,就可以直接点击使用
显示当前安装JDK版本:
使用 java -version 命令验证 Java 安装。
2.2、安装Maven
从网上下载 Maven:http://maven.apache.org/download.html
安装的过程和jdk相似
解压Maven并且进行环境变量配置
配置Path
检查是否配置成功
mvn -v
mvn 没有参数
自动生成两个文件夹:C:\Users\Administrator\.m2\repository 本地仓库目录
扩展小知识 |
如果Maven出现JVM内存不足的情况(现在的电脑内存一般没有这种问题了) 设置MAVEN_OPTS环境变量 -Xms128m -Xmx512m JVM内存过小的问题解决(现在电脑一般也没问题) JAVA_OPTS -Xms256m -Xmx1024m |
2.3、配置本地仓库
Maven会自动为咱们添加相应的jar包,而这个jar包会先在本地仓库中查找,如果本地仓库中找不到,则会去中央仓库(网络上)去进行下载。
提示:对于仓库的概念咱们在后面Maven导包的部分再进行讲解。
本地仓库默认是在咱们的C盘(系统盘中):
(不同的电脑可能会有区别)咱们并不建议把 jar包放在系统盘(原因你懂的!)
第一步:移动settings.xml文件
MAVEN_HOME/conf/settings.xml 全局的
~用户根路径C:\Users\Administrator/.m2/settings.xml 单个用户的,修改用户的配置文件
第二步:准备好本地仓库
将准备好的本地仓库包解压
第三步:配置文件设置路径到本地仓库
单个的settings.xml文件
增加<localRepository>D:/OpenSource/repository</localRepository>
3、测试Maven常用命令
(1)mvn help:system:该命令打印出所有的java系统属性和环境变量。
(2)mvn clean:清理输出目录默认target/。
(3)mvn clean compline:编译项目主代码,默认编译至target/classes目录下。
(4)mvn clean test:maven测试,但实际执行的命令有:clean:clean,resource:resources,compiler:compile, resources:testResources, compiler:testCompile,maven在执行test之前,会先自动执行项目主资源处理,主代码编译,测试资源处理,测试代码编译等工作,测试代码编译通过之后默认在target/test-calsses目录下生成二进制文件,紧接着surefile:test 任务运行测试,并输出测试报告,显示一共运行了多少次测试,失败成功等等。
(5)mvn celan package:maven打包,maven会在打包之前默认执行编译,测试等操作,打包成功之后默认输出在target/目录中。
(6)mvn clean install:maven安装,让其他的项目直接引用这个项目。
(7)echo %MAVEN_HOME%:查看maven安装路径。
(8)mvn:检查是否安装了maven。
(9)mvn dependency:list:查看当前项目中的已解析依赖
(10)mvn dependency:tree:查看当前项目的依赖树
(11)mvn dependency:analyse: 查看当前项目中使用未声明的依赖和已声明但未使用的依赖
(12)mvn eclipse:eclipse :生成eclipse项目环境