maven基础及使用maven清理,编译,测试,打包,部署

一、Maven简介
1、什么是Maven
Maven是跨平台的项目管理工具。主要服务鱼基于Java平台的项目构建,依赖管理和项目信息管理。
2、什么是理想的项目构建


清理--->编译--->测试--->报告--->打包--->部署


高度自动化,跨平台,可重用的组件,标准化的
3、什么是依赖?为什么要进行依赖管理?
自动下载,统一依赖管理
4、有哪些项目信息
项目名称描述等,开发人员信息,开发者信息
5、项目构建过程


二、为什么使用Maven
不使用Maven:
1、手工操作较多,编译、测试、部署等工作都是独立的,很难一步完成
2、每个人的IDE配置都不同,很容易出现本地代码换个地方编译就出错
使用Maven:
1、拥有约定,知道你的代码在哪里,放到哪里去
2、拥有一个生命周期,例如执行 mvn install就可以自动执行编译,测试,打包等构建过程
3、只需要定义一个pom.xml,然后把源代码放到默认目录,Maven帮你处理其他事情
4、拥有依赖管理,仓库管理


三、Maven的安装与配置


1、确认jdk是否安装
http://maven.apache.org/docs/history.html
Maven3.3.X及以上版本至少需要jdk1.7的支持。
2、去官网http://maven.apache.org/download.cgi
3、下载 apache-maven-3.5.3-bin.zip
4、解压
 目录结构:
 bin:命令
 boot:maven启动所需
 conf:配置文件(常用的setting.xml就在其中)
 lib:maven所依赖的jar包

maven基础及使用maven清理,编译,测试,打包,部署


5、环境变量
 环境变量配置和JDK配置一样,如:M2_HOME/MAVEN_HOME和Path

maven基础及使用maven清理,编译,测试,打包,部署

maven基础及使用maven清理,编译,测试,打包,部署



四,切换到项目根目录下,分别执行下列命令并观察:

mvn -v:查看版本

mvn clean 清理   此时会清空target 目录
mvn compile:编译
mvn test:测试
mvn package:打包
mvn install:打包并拷贝到本地仓库

 

步骤:在磁盘中找到项目的根目录(带pom的目录),在输入目录中输入cmd

      

 maven基础及使用maven清理,编译,测试,打包,部署

1.这是输入mvn compile 的 命令

 maven基础及使用maven清理,编译,测试,打包,部署

2.这是输入mvn package,得到相应的jar

maven基础及使用maven清理,编译,测试,打包,部署
六、Maven相关概念介绍


1、项目对象模型(POM)
2、坐标
什么是坐标
在平面几何中坐标(x,y)可以标识平面中唯一的一点
Maven坐标主要组成
groupId:定义当前Maven项目隶属项目 如:org\apache\maven
artifactId:定义实际项目中的一个模块 如:maven-model
version:定义当前项目的当前版本   如:3.0

packaging:定义该项目的打包方式
Maven为什么使用坐标
Maven世界拥有大量构建,我们需要找一个用来标识
3、依赖管理
1、依赖声明
<dependency>
 <groupId>junit</groupId>
 <artifactId>junit</artifactId>
 <version>4.12</version>
 <scope>test</scope>
 </dependency> 

 
2、依赖范围
依赖范围scope用来控制依赖和编译、测试、运行的classpath的关系
compile:默认编译依赖范围。对于编译、测试、运行三种classpath都有效。
test:测试依赖范围。只对于测试classpath有效。
provided:已提供依赖访问。对于编译、测试的classpath有效,但对于运行无效,因为容器已经提供,例如servlet-api
runtime:运行时提供。例如jdbc驱动。


4、仓库管理
何为Maven仓库
用来统一存储所有Maven共享构建的位置就是仓库
Maven仓库布局
根据Maven坐标定义每个构建在仓库中唯一存储路径
大致为:groupId/artifactId/version/artifactId-version.packaging
仓库的分类
默认的本地仓库
~/.m2/repository/

每个用户只有一个本地仓库
远程仓库
            *仓库:Maven默认的远程仓库http://repo1.maven.org/maven2/
             私服:是一种特殊的远程仓库,它是架设在局域网内的仓库。

            如果本地上没有jar,就会从私服上拉取,如果私服没有,就会从*仓库拉取
 镜像:用来替代*仓库,速度一般比*仓库


5、生命周期
何为生命周期
Maven生命周期就是为了对所有的构建过程进行抽象和统一
包括项目清理、初始化、编译、打包、测试、部署等几乎所有构建步骤
Maven三大生命周期
clean:清理项目的
default:构建项目的
site:生成项目站点的

6、仓库
1、本地仓库
 设置本地仓库:conf/setting.xml

maven基础及使用maven清理,编译,测试,打包,部署