Maven的作用
1.maven可以管理jar文件
2.自动下载jar和他的文档,源代码
3.管理jar的直接的依赖,a.jar需要b.jar,则maven会自动下载b.jar
4.管理你需要的jar版本
5.测试代码是否正确
6.编译程序,把java编译为class
7.打包文件,形成jar或者war
8.部署项目
maven:项目的构建
构建是面向过程的,完成项目代码的编译、测试、运行、打包、部署等等
maven支持的构建包括
1.清理:把之前项目编译的东西删除掉,为新的编译代码做准备
2.编译:把程序源代码编译为执行代码,java-->class,maven可以批量的编译,javac不行
3.测试:maven可以执行测试程序代码,验证你的功能是否正确。同时执行多个代码
4.报告:生成测试结果文件,测试通过没有
5.打包:把项目中的所有class文件,配置文件等所有资源放到一个压缩文件中。
java的程序压缩文件为jar,web的压缩文件为war。
6.安装:把压缩文件安装到本机仓库
7.部署:把程序安装好可以执行
Maven核心概念
1.POM:一个文件,名称为pom.xml,pom-->项目对象模型。maven吧项目当做模型使用。
控制maven构建项目的过程,管理jar依赖。
2.约定的目录结构:maven项目的目录和文件的位置都是规定的。
3.坐标:是一个唯一的字符串,用来表示资源的。
4.依赖管理:管理你的项目可以使用jar文件
5.仓库管理:资源存放的位置
6.生命周期:maven构建项目的过程
7.插件和目标:执行maven构建的时候用的工具是插件
8.继承:有一个父类,子类
9.聚合:多个项目
Maven工具的安装和配置
1.进入官网下载maven (http://mavne.apache.org/)
2.解压maven的压缩包----存放在非中文的目录
子目录 bin:执行程序,主要是 mvn.cmd
conf:maven工具本书的配置文件 setting.xml
3.配置环境变量
在系统的环境变量中,指定一个M2_HOME的名称,指定他的值是maven工具安装目录
路径:D:\apache-maven-3.8.5-bin\apache-maven-3.8.5
在将%M2_HOME%\bin;添加到path目录中
4.验证maven是否配置成功,在新的命令行中输入mvn -v验证
Maven的使用
Maven工程约定目录结构
Hello/ ——项目名
------/src
------------/main ——放你主程序java代码和配置文件的
--------------------/java ——你的程序包和包中的Java文件
-------------------/resources ——你的java程序中要使用的配置文件
------------/test ——放测试程序代码和文件的(可以没有)
--------------------/java ——测试程序包和包中的Java文件
-------------------/resources ——测试的java程序中要使用的配置文件
------/pom.xml ——maven的核心文件(maven项目必须有)
修改maven下载资源存放地址 (可选)
1.修改maven的配置文件,maven安装目录/conf/setting.xml
2.修改<localRepository>指定你的目录(不要有中文)
maven仓库
仓库是存放东西的,存放maven使用的jar和我们项目使用的jar
仓库的分类:
本地仓库:个人计算机上的文件夹,存放jar
远程仓库:在互联网上的,使用计算机网络才能使用
1>.中央仓库:最权威的,所以开发人员都共享使用的一个集中仓库(https://mvnrepository.com/)
2>.中央仓库的镜像:就是中央仓库的备份。各大洲,重要城市都有镜像
3>.私服:在局域网内使用的,不对外使用
进入中央仓库,搜索需要的插件,选择版本,就可以获得插件在pom.xml的依赖代码。
maven的pom.xml理解(核心)
———————————————————————————————————————————
modelVersion——Maven模型的版本,一般固定为4.0.0
groupId——组织id,一般为域名倒写,如com.baidu
artifactId——项目名称也是模块名称
version——项目的版本号(自定义的)
groupId、artifactId、version三个元素生成了一个Maven项目的基本坐标(gav),可以在Maven中可以唯一定位到某一个项目,坐标也决定这项目在仓库中的路径及名称。
———————————————————————————————————————————
packaging——项目打包的类型,jar、war、rar、ear、pom(默认为jar)
———————————————————————————————————————————
dependencies、dependency ——项目中使用的各种资源说明(依赖)
例如:
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.9</version>
<denpendency>
</dependencies>
添加mysql5.1.9 的依赖
———————————————————————————————————————————
properties——定义一些配置属性
<properties>
<java.version>1.8<java.version>
<maven.compiler.source>1.8<maven.compiler.source>
<maven.cpmpiler.target>1.8<maven.compiler.target>
</properties>
定义JDK为1.8版本
———————————————————————————————————————————
build——表示与构建相关的配置——构建
———————————————————————————————————————————
parent——在maven中如果有多个模块需要相同的配置,则可以用parent声明要继承的父工程pom配置——继承
———————————————————————————————————————————
modules——在maven多模块开发中,为了构建一个整个项目的所有模块,可以提供一个额外的模块。——聚合
maven的常用命令——执行命令必须在命令行进入pom.xml所在目录
mvn clean——清理,删除target中的编译和测试的结果,但是install到仓库的包不会删除
mvn compile——编译主程序(main),在当前目录下生成target,存放编译后的代码文件
mvn test-compile——编译测试程序,在测试的目录下生成target,存放代码文件
mvn test——测试,生成一个surefire-reports,保存测试结果
mvn package——打包主程序,进行编译等,且按照pom.xml配置把程序打包为jar或war等包
mvn install——安装主程序,把本工程打包,并按照坐标保存到本地仓库中
mvn deploy——部署主程序,把本工程打包,并按照坐标保存到本地仓库中,并保存到私服仓库中,还会自动把项目部署到web容器中)
junit——测试的框架(单元测试)
junit测试的内容:测试类中的方法,每一个方法都是独立测试,方法是测试的基本单位(单元)。
maven可以借助junit,批量测试你类中的大量方法是否符合预期。
使用步骤:
1.加入依赖
<!-- https://mvnrepository.com/artifact/junit/junit -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
2.在maven项目中的src/test/java/目录下,创建测试程序
推荐的创建类和方法建议:
1.测试类的名称,是Test+你要测试的类名
2.测试的方法名称是:Test+方法名称
测试方法的定义规则:
1.方法必须是public
2.方法不能有返回值
3.方法的名称是自定义的,但是有推荐
4.方法上方要加上@Test