一般工程的特点
20180731203204734.png
20180731203111525.png
什么是Maven
- Maven是一款服务于Java平台的自动化共建构建工具
 - 构建
通过各种代码图片等素材 > 编译 > 构建 - 构建的各个环节
- 清理 : 将以前的. class文件删除;
 - 编译 : 将.java编译为.class字节码文件;
 - 测试 : 自动测试,自动调用JUnitl;
 - 报告 : 测试程序执行结果;
 - 打包 : 动态Web工程打war包,java工程打为jar包;
 - 安装 : Maven特定的概念--将打包的文件复制到"仓库"中指定的位置;
 - 部署 : 将动态Web工程生成的war包复制到Servlet容器的指定目录下,使其可以运行;
 
 
Maven的核心概念
- 约定的目录结构
 - POM
 - 坐标
 - 依赖
 - 仓库
 - 生命周期\插件\目标
 - 继承
 - 聚合
 
安装Maven核心程序
1. 下载Maven
2. Maven环境变量配置
- 
MAVEN_HOME- 解压后的文件路径
例 :C:\Program Files\Java\apache-maven-x.x.x 
 - 解压后的文件路径
 - 
path- 在原有的path中添加
例 :%MAVEN_HOME%\bin\ 
 - 在原有的path中添加
 - 验证
- CMD:
mvn -v
配置成功时,会返回如下(因电脑差异,会有细微区别) 
 - CMD:
 
Apache Maven 3.5.4 (1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-18T02:33:14+08:00)
Maven home: C:\Program Files\Java\apache-maven-3.5.4\bin\..
Java version: 1.8.0_102, vendor: Oracle Corporation, runtime: C:\Program Files\Java\jdk1.8.0_102\jre
Default locale: zh_CN, platform encoding: GBK
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"
Maven工程
创建Maven的目录
- 目录结构
- 根目录:工程名
 - 
src目录:源码 - 
pom.xml文件:Maven工程的核心配置 - 
main目录:存放主程序 - 
test目录:存放测试程序 - 
java:.java源文件 - 
resources:各种配置文件 
 - 为什么要遵守这样的约定?
- Maven要负责工程的自动化构建,因为要根据这种约定找文件,才可以编译;
 - 也可以自定义,但是要采取这两种方式:
- 以配置的方式明确
如classpath:spring-context.xm; - 或者遵循默认的方式
如log4j.properties 
 - 以配置的方式明确
 - 默认:约定 > 配置 > 编码 (尽可能的使用默认配置,减少代码量)
 
 
常用的Maven命令
- 注意:执行与构建过程相关的Maven命令,必须进入pom.xml所在的目录
与构建过程相关 : 编译 测试 打包 ... - 常用命令 :
- 
mvn clean: 清理 - 
mvn compile: 编译主程序 - 
mvn test-compile: 编译测试程序 - 
mvn test: 执行测试 - 
mvn package: 打包 - 
mvn install: 安装 - 
mvn site: 生成站点 
 - 
 
关于源码和仓库
- Maven的核心程序只定义了抽象的生命周期,但是不提供你所需的插件
 - 当执行Maven命令需要某些插件是,Maven核心程序回到本地仓库中查找
 - 本地仓库默认位置 : 
c:Users\[登陆当前系统的用户名]\.m2\repository - 如果找不到,它会自动连接外网,到中央仓库下载;
 - 失败时,构建失败
 - 修改默认仓库位置可以到事先准备好的路径进行加载.
- 解压路径 : 
conf\settings.xml - xml中的
<localRepository>标签中 - 替换标签内容为新仓库的绝对路径
 
 - 解压路径 : 
 
POM
- 含义 : Project Object Model
 - pom.xml 对于Maven工程是核心配置文件,与构建过程相关的一切设置都在这个文件中配置;
 
坐标(J.A.V)
- 使用下面三个参数在仓库中唯一定位一个Maven工程
- 
groupid: 公司或组织域名倒叙+项目名 - 
artifactid: 模块名 - 
version: 版本 
 - 
 
仓库
- 本地仓库
为当前电脑的所有Maven工程服务 - 远程仓库
 
- 私服 : 局域网的仓库;
 - 中央仓库 : 假设在Internet上,为全世界服务;
 - 中央仓库镜像 : 为了减轻中央仓库的压力;
 
- 仓库保存的内容
 
- Maven 的插件
 - 第三方jar包
 - 自己开发的Maven工程
 
依赖
- 
Maven解析依赖信息是会到本地仓库中查找被依赖的jarbao
对于我们自己开发的Maven工程,用使用mvn install命令安装后就可以进入仓库了
20180731225338624.png
 - 
依赖的范围
20180731230249927.jpg
- 
compile- 对主程序是否有效 : 有效
 - 对测试程序是否有效 : 有效
 - 
是否参与打包 : 参与
20180731230404279.jpg
 
 - 
test- 对主程序是否有效 : 无效
 - 对测试程序是否有效 : 有效
 - 是否参与打包 : 不参与
 
 - 
provided- 对主程序是否有效 : 有效
 - 对测试程序是否有效 : 有效
 - 
是否参与打包 : 不参与
20180731230539265.jpg
 
 
 - 
 











网友评论