【教程】Maven
Maven的2个功能
1、依赖管理-jar包管理
2、项目构建-代码编译、打包、部署
Maven依赖管理的原理:
![](https://i-blog.csdnimg.cn/blog_migrate/351111fc4c8a806eaf36cf7efd36ff34.png)
Maven的安装与配置
- 官网下载安装包:http://maven.apache.org/download.cgi
我下载的是:apache-maven-3.6.3-bin.zip
- 注意点1:我使用的idea版本是2020.1,要注意idea版本和maven版本的兼容性,下载maven之前请查询你的idea版本对应哪个版本的maven。
- 注意点2:确定jdk在这之前已经安装好了,且jdk版本>=1.8。
-
解压到放到任意磁盘以及任意文件夹,注意:解压路径不要有中文
复制路径:E:\maven\apache-maven-3.6.3
-
配置环境变量
"计算机"右键->“属性”->“高级系统设置”->“高级”->“环境变量”
新建一个系统变量M2_HOME,粘贴刚刚复制的路径:
编辑PATH系统变量,添加刚刚创建的M2_HOME: -
测试是否安装成功
Maven核心配置文件:Pom.xml
依赖就是Jar包。
下边是一个Pom.xml示例:
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<!-- 版本:4.0.0 -->
<modelVersion>4.0.0</modelVersion>
<!-- 组织名称:暂时使用 组织名称+项目名称 作为组织名称 -->
<!-- 组织名称:实际名称 按照访问路径规范设置,通常以功能作为名称:
eg: junit spring -->
<groupId>com.kkb.maven</groupId>
<!-- 项目名称 -->
<artifactId>HelloWorld</artifactId>
<!-- 当前项目版本号:同一个项目开发过程中可以发布多个版本,此处标示0.0.1版 -->
<!-- 当前项目版本号:每个工程发布后可以发布多个版本,依赖时调取不同的版本,使用不同的版本号 -->
<version>0.0.1</version>
<!-- 名称:可省略 -->
<name>Hello</name>
<!-- 依赖关系 -->
<dependencies>
<!-- 依赖设置 -->
<dependency>
<!-- 依赖组织名称 -->
<groupId>junit</groupId>
<!-- 依赖项目名称 -->
<artifactId>junit</artifactId>
<!-- 依赖版本名称 -->
<version>4.12</version>
<!-- 依赖范围:test包下依赖该设置 -->
<scope>test</scope>
</dependency>
</dependencies>
</project>
搭建原生Maven项目
1.以下图中的目录结构创建文件夹
2.在src/main/java下创建包目录,用来存放java代码;编写java代码。
注意1:上一步创建的文件夹不属于包目录,注意java代码中package路径不要包含上一步的文件夹。
注意2:编写java代码,这里输出的内容最好是英文,中文会出乱码。
3.在test/java文件夹下创建包结构以及测试类
注意:
导入Demo类所在包,注意包路径
导入Junit测试包,注意我们还没有给项目添加依赖包
4.在src同级文件夹下存放pom.xml文件,这里开始引入Junit工具包
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.czn.maven</groupId>
<artifactId>HelloWorld</artifactId>
<version>0.0.1</version>
<!-- 依赖关系 -->
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
5.通过maven命令行的方式运行项目
打开cmd后,进入到项目文件夹,运行mvn test命令进行Junit测试
注意:命令运行完后,程序会自动下载所需的依赖包,注意这里不仅仅是junit测试包,还有maven环境的依赖包,所以需要耐心等待一段时间。这里依赖包会下载到本地磁盘,后续再使用的时候就不会重新下载了。
在下载jar包的时候,我遇到了报错:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project HelloWorld: Compilation failure: Compilation failure:
[ERROR] 不再支持源选项 5。请使用 6 或更高版本。
[ERROR] 不再支持目标选项 1.5。请使用 1.6 或更高版本。
通过修改maven安装包的conf文件夹下setting.xml文件,解决了该问题。请见:Maven [ERROR] 不再支持源选项 5,请使用 7 或更高版本的解决办法
运行成功:
项目文件夹下多了一个target文件夹。
Maven常用指令
1 Mvn compile
执行 mvn compile命令,完成编译操作
执行完毕后,会生成target目录,该目录中存放了编译后的字节码文件。
2 Mvn clean
执行 mvn clean命令,执行完毕后,会将target目录删除。
3 Mvn test
执行 mvn test命令,完成单元测试操作。执行完毕后,会在target目录中生成三个文件夹:surefire、 surefire-
reports(测试报告)、test-classes(测试的字节码文件)
4 Maven package
执行 mvn package命令,完成打包操作
执行完毕后,会在target目录中生成一个文件,该文件可能是jar、war
5 Mvn install
执行 mvn install命令,完成将打好的jar包安装到本地仓库的操作
执行完毕后,会在本地仓库中出现安装后的jar包,方便其他工程引用
6 mvn clean compile 命令
cmd 中录入 mvn clean compile 命令
组合指令,先执行clean,再执行compile,通常应用于上线前执行,清除测试类
7 mvn clean test 命令
cmd 中录入 mvn clean test 命令
组合指令,先执行clean,再执行test,通常应用于测试环节
8 mvn clean package 命令
cmd 中录入 mvn clean package命令
组合指令,先执行clean,再执行package,将项目打包,通常应用于发布前
执行过程:
清理————清空环境
编译————编译源码
测试————测试源码
打包————将编译的非测试类打包
9 mvn clean install 命令
cmd 中录入 mvn clean install 查看仓库,当前项目被发布到仓库中
组合指令,先执行clean,再执行install,将项目打包,通常应用于发布前
执行过程:
清理————清空环境
编译————编译源码
测试————测试源码
打包————将编译的非测试类打包
部署————将打好的包发布到资源仓库中
idea创建Maven项目
Java类型项目
1.主界面中选择Create New Project,然后在左侧项目类型中选择Maven,右侧不勾选任何选项,点击右下角的“Next”。
2.填写项目名、GroupId、ArtifactId:
补充:
maven中的仓库分为两种,snapshot快照仓库和release发布仓库。snapshot快照仓库用于保存开发过程中的不稳定版本,release正式仓库则是用来保存稳定的发行版本。定义一个组件/模块为快照版本,只需要在pom文件中在该模块的版本号后加上-SNAPSHOT即可(注意这里必须是大写)。