什么是maven
Maven是基于项目对象模型(POM project object model),可以通过一小段描述信息(配置)来管理项目的构建,报告和文档的软件项目管理工具
maven的作用
1.maven可以管理jar文件
2.自动下载jar文件和文档
3.管理jar直接的依赖,如果a.jar依赖于b.jar,自动下载b.jar
4.管理需要的jar版本
5.帮你编译程序,把java编译成class文件
6.帮你测试代码是否奏效
7.帮你打包文件,形成jar文件或war文件
8.帮你部署项目
maven支持项目的构建
1.清理:把之前项目编译的东西删掉,为新的项目编译做准备
2.编译:把源代码编译为可执行文件 ----java->class
3.测试:maven可以测试你的代码是否正确。maven可以同时执行多个代码
4.报告:生成测试结果的文件
5.打包:把你项目中所有的class文件,配置文件等所有资源放在一个压缩包中,这个压缩包文件就是结果文件。通常java应用,是以.jar为拓展名,web应用是以.war为拓展名
6.安装:把5中的jar,war放在本机仓库中
7.部署:程序安装好后即可执行
maven的核心概念
1.POM: 一个文件 ,名字是pom.xml。pom->项目对象模型。maven把一个项目当作一个模型使用。控制maven构建项目的过程,管理jar依赖。
2.约定的目录结构:maven项目的目录和文件位置是规定的。
3.坐标:是一个唯一的字符串,用来表示资源
4.依赖管理:管理你的项目可以用jar文件
5.仓库管理:资源存放的位置
6.生命周期:maven构建项目的过程
7.插件和目标:执行maven构建的工具是插件(jar文件)
8.继承:
9.聚合:
仓库的了解
①什么是仓库
仓库是存放东西的,存放maven使用的jar 和我们项目使用的jar
maven使用的插件(各种jar)
项目使用的jar(第三方的工具)
②仓库的分类
1.本地仓库:个人计算机上的文件夹,存放各种jar
2.远程仓库:在互联网上,使用网络才能使用的仓库
> 中央仓库:所有开发人员共享使用的一个仓库
> 中央仓库的镜像:中央仓库的备份,在各大洲和城市的都是镜像
> 私服:在公司内部,在局域网中使用的,不对外使用。
POM文件
项目对象模型,是一个pom.xml文件
①坐标:唯一值,在互联网中唯一标识一个项目
<groupId>公司域名倒写</groupId>
<artifactId>自定义项目名称</artifactId>
<version>自定义版本号</version>
②packaging
打包后压缩文件的拓展名,默认是jar,web应用是war
packing可以不写,默认是jar
③依赖:dependencies和dependency相当于java中的import
项目中要使用各种资源说明:例如需要junit测试
<dependencies>
<!--单元测试-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
</dependencies>
④properties:设置属性,一般是说明jdk版本
⑤build:maven在进行项目构建时,配置信息,例如指定java代码中的jdk版本
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
<plugin>
</plugins>
</build>
maven的插件
①单元测试:用的时junit,junit是一个专门测试的框架(工具)
junit测试的内容:测试的是类中的方法,每一个方法都是独立测试
maven借助单元测试:批量的测试类中的大量方法是否符合预期
②使用步骤:
1.加入依赖,在pom.xml文件中加入单元测试依赖
<!--单元测试-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
2.在maven的src/test/java目录下,创建测试程序
1.测试类的名称:Test+类名
2.测试方法的名称:Test+方法名
3.测试方法规则:
1.方法是public
2.没有返回值
3.方法的上面加入@Test
依赖范围
依赖范围是用scope表示 的,scope的值有 compile,test,provided
scope:表示依赖使用的范围,也就是maven构建项目时在哪些阶段起作用
maven构建项目:清理,编译,测试,打包,安装,部署,过程
maven的常用操作
1.maven的属性设置:
<properties>设置maven常用属性
2.maven的全局变量
自定义的属性:1:在<properties>自定义标签声明变量(标签名就是变量名)
2.在pom.xml文件其他位置,使用${标签名}使用变量的值。
自定义全局变量一般是定义 依赖的版本号,当你的项目中有多个版本号时,
先使用全局变量定义,再使用{变量名}
<properties>
<servet-version>3.8.5</servlet-version>( 版本号)
</properties>
<dependency>
<version>${servlet-version}</version>
</dependency>