一般工程的特点


什么是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
-
网友评论