Maven核心概念:
-
POM:
- 一个文件pom.xml,pom(Project Object Modle)项目对象模型
- maven把一个项目当作一个模型使用,控制maven构建项目的过程,管理jar依赖,通过pom文件实现
-
约定的目录结构:
-
maven项目的目录和文件的位置都是规定的
-
maven中约定的目录结构:
-
Hello/
---/src
----/main #放置主程序java代码和配置文件
-----/java #放置程序包和包中的java文件
-----/resources #放置的java程序中要使用的配置文件
----/test #放测试程序代码和文件(可以没有)
-----/java #测试的java程序包和包中的java文件
-----/resources #测试的java程序中要使用的配置文件
---/pom.xml
-
Hello
|---src
|---|---main
|---|---|---java
|---|---|---resources
|---|---test
|---|---|---java
|---|---|---resources
|---pop.xml
-
-
-
坐标:
- 是一个唯一的字符串,用来表示资源
-
依赖管理
- 管理项目可以使用的jar文件
-
仓库管理
- 资源存放的位置
-
生命周期
- maven工具构建项目的过程,就是生命周期
-
插件和目标
- 执行maven构建的时候用的工具是插件
-
继承
-
聚合
Maven工具配置:
- 子目录
- bin:mvn.cmd执行程序
- conf:settings.xml,Maven工具本身的配置文件
- 配置环境变量
- M2_HOME=D:\setTest\apache-maven-3.8.4
- 在PATH中配置%M2_HOME%\bin
Maven的作用
- maven:是一个项目的构建工具
- 作用:
- 1,管理依赖:jar的管理,下载,版本
- 2,构建项目,完成代码的编译,测试,打包,部署
- 使用方式:
- 1,独立使用maven:命令行使用完成代码的编译,测试,打包等功能
- 2,结合开发工具使用:在idea中使用maven,简单快捷
仓库
- 仓库是什么:
- 存放maven使用的插件(各种jar),和项目使用的jar(第三方仓库)
- 仓库的分类?
- 本地仓库:个人计算机上的文件夹,存放各种jar
- 远程仓库:在互联网上,使用网络才能使用的仓库
- 中央仓库:最权威,所有开发人员共享使用的集中仓库
- 中央仓库的镜像:中央仓库的备份
- 私服:公司内部,局域网使用,不对外开放
- 仓库的使用:
- 使用A.jar---->首先查找本地仓库---->有,则返回---->无,查私服----->无,查镜像---->中央仓库
pom文件
- maven的灵魂(projiect object modle),maven把一个项目当作一个模型使用,控制maven构建项目的过程,管理jar依赖,通过pom文件实现,
- 基本信息
- modleVersion:Maven的模型版本无论2还是3,统一是4.0.0
- 坐标:(groupID+artifactID+version)
- groupID:组织的id,一般是域名倒写/域名倒写加项目名
- 倒写如:com.baidu
- com.baidu.appolo
- artifactId:自定义项目名称,也是模块名称对应groupId中项目的子项目
- version:项目的版本号如果在开发中,是不稳定版本在版本号后面带-SNAPSHOT
- groupID:组织的id,一般是域名倒写/域名倒写加项目名
- packageing:项目压缩文件扩展名,默认是jar
- dependencies和dependency:项目要使用的各种资源说明,相当于java中的import
- properties:设置属性
- build:maven在进行项目构建时,配置信息,如指定编译java使用的jdk的版本号等
Maven的生命周期,Maven的命令,Maven的插件
- Maven的生命周期:maven构建项目的过程,清理,编译,测试,报告,打包,安装,部署
- Maven的命令:Maven可以独立使用,通过命令,来完成maven生命周期的执行(maven每次执行下一阶段的命令时,都会把前一阶段的命令执行一次)
- maven可以使用命令,完成项目的清理,编译,测试
- mvn clean 清理,会删除原来编译和测试的目录
- mvn compile 编译主程序
- mvn test-compile 编译测试的主程序
- mvn test 测试,会生成一个目录surefire-reports,保存测试结果
- mvn package 打包主程序(会编译,编译测试,测试,并按照pom.xml中的配置把主程序打包成jar或war包)
- mvn install 安装主程序(会把本工程打包,并按照本工程的坐标保存到本地仓库)
- mvn depoly 部署主程序(会把本工程打包,并按照本工程的坐标保存到本地仓库,并且还会保存到私服仓库中,还会自动把项目部署到web容器中)
- maven可以使用命令,完成项目的清理,编译,测试
- Maven的插件:maven执行命令时,真正完成功能的是插件,插件就是一些jar文件,一些类
单元测试
-
junit,junit是一个专门测试的框架(工具)
- junit测试的内容:测试的是类中的方法,每一个方法都是独立测试的
- 方法是测试的基本单位(单元),junit就是测试方法的
-
maven就是借助单元测试来批量测试类中的大量方法是否符合预期的
-
怎么使用?
-
加入依赖,在pom中添加单元测试的依赖
-
<!-- https://mvnrepository.com/artifact/junit/junit --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency>
-