浅谈Maven及初级使用
文章目录
前言
本文只是作者对于maven的一些浅显认识与使用,有错误之处,还请指教
一、Maven是什么?
概念
Maven是一种基于项目对象模型(pom)对项目进行构建、对依赖进行管理的工具。
功能
- Maven可以对jar包进行管理,在传统导入jar包时,需要挨个下载并拷贝到项目里,但使用Maven可以将依赖写入pom.xml中,自动帮助我们下载。
- 除此之外,Maven可以单独管理项目生命周期。在idea中,有一键构建项目的功能,但是无法自定义要运行哪一步,这时就可以使用Maven。
二、下载安装及配置
下载
从 我是下载链接哦中下载压缩包,并解压到本地。
Maven目录结构中,bin目录下存放了指令文件,其中有一系列mvn指令,conf目录下包含了核心配置文件settings.xml,lib目录下存放了Maven运行所需的jar文件,boot目录下包含了一个类加载框架的jar文件。
配置环境变量
1、在环境变量中的系统变量里配置Maven地址
2、在环境变量中的系统变量里配置path:%MAVEN_HOME%\bin
3、 在命令窗口中输入 mvn -version 检测安装是否成功
要注意的是,在安装Maven之前先配好jdk哦
三、Maven浅论
项目结构
HelloWorld(项⽬名称)
——src
--main (存放项⽬的源⽂件)
--java (存放java代码)
--resources (存放配置⽂件、静态资源)
--test (存放测试代码)
——pom.xml
pom.xml相关介绍
Maven可以根据pom.xml中的配置进行依赖管理,在更新jar包、打包时非常方便
下图为没有配置依赖时的pom.xml文件
在pom.xml文件中,groupId、artifactId、version是Maven中的三个关键坐标。1.groupId为该项目隶属的实际项目,可以说是公司的标识;2.artifactId为当前项目中的一个Maven项目(模块),可以说是项目本身的名字;3.version即为项目的版本。
这三个坐标在导入依赖时十分重要,要记好哦!除此之外,还有packaging、classifier坐标。
packaging:定义Maven项目打包的方式。其中有pom、jar、war三种打包方式,当pom文件中没有设置packaging参数时,默认使用jar方式打包。
classifier:可以是任意的字符串,用于拼接在GAV之后来确定指定的文件,可用于区分不同jdk版本所生成的jar包
Maven的依赖管理及仓库介绍
依赖管理
1.首先我们在项目里的pom.xml配置依赖
2.Maven读取项目的pom.xml文件
3.Maven会先检查本地仓库是否有项目需要的jar包,也就是pom.xml中的依赖。如果本地仓库中有,则直接导入进项目里,如果没有,那么maven会连接远程仓库进行下载(远程仓库提供了所有需要的jar包)
4.Maven从远程仓库下载的jar文件会先保存进本地仓库,再从本地仓库中导入到项目里
至此,Maven实现依赖管理
仓库介绍
Maven仓库有两种大类型:
- 本地
- 远程
1.本地仓库:Maven 的本地仓库,在安装 Maven 后并不会创建,它是在第一次执行 maven 命令的时候才被创建,也就是本地计算机里的一个文件夹(自定义的任意一个都可以哦)
2.远程仓库:远程仓库可以说是远程主机上的jar⽂件仓库
- 中央仓库:maven官⽅提供的仓库,包含了所需的⼀切依赖(免配置)
- 公共仓库:除了中央仓库以外的第三⽅仓库都是公共仓库,例如aliyun(需要配置)
- 私服:企业搭建的供内部使⽤的maven仓库
Maven仓库配置
在maven_home/conf/settings.xml中进⾏配置
1.首先配置本地仓库:
<localRepository>E:\study\apache-maven-3.8.2\repo</localRepository>
2.配置公共仓库(阿里云):
<mirrors>
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
</mirrors>
四、基于IDEA中Maven的使用
1.首先,我们在IDEA中配置Maven
2.在IDEA里创建Maven项目
3.Maven的简单使用
那么使用Maven,第一步当然是要添加依赖啦
我们就拿mysql-connector-java的依赖举例:
进入上面的网址中搜索mysql-connector,找到如下页面将其复制进pom.xml文件里
粘贴时,我们要将依赖坐标配置到dependencies里。
<?xml version="1.0" encoding="UTF-8"?>
<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.kn</groupId>
<artifactId>testMaven</artifactId>
<version>1.0.0</version>
<dependencies>
<!-- mysql驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.13</version>
</dependency>
</dependencies>
</project>
注意,如果是第一次创建配置的本地仓库,可能会报错。不要担心,此时点击右边侧边栏里的Maven Projects中的刷新按钮,等待一会就好啦
4.Maven构建生命周期
常用命令:
1.验证 validate:
验证项目——验证项目是否正确且所有必须信息是可用的
2.编译 compile:
执行编译——源代码编译在此阶段完成
3.测试 Test:
测试——使用适当的单元测试框架(例如JUnit)运行测试。
4.包装 package:
打包——创建JAR/WAR包如在 pom.xml 中定义提及的包
5.检查 verify:
检查——对集成测试的结果进行检查,以保证质量达标
6.安装 install:
安装——安装打包的项目到本地仓库,以供其他项目使用
7.部署 deploy:
部署——拷贝最终的工程包到远程仓库中,以共享给其他开发人员和工程
五、总结
本文只是作者对于Maven的一些浅显见解与初步到极点的使用,如有不当,还望指出!