Maven 基本知识
一.Maven是什么
Maven是Apache旗下一款开源自动化的项目管理工具,它使用java语言编写,因此Maven是一款跨平台的项目管理工具。
Maven主要功能:
-
项目构建
在实际开发中,不仅仅是写完代码项目就算完成了,后面还有一些诸如:编译,打包,部署等工作要做,这些工作都可以使用maven来完成。
-
依赖管理
说的简单一点就是对jar包的管理,开发者不用再手动的下载所需要的jar包,而是将想要的jar包通过配置一个叫做pom.xml的文件中,之后maven会自动的下载相关的jar包。
二.Maven的安装
-
下载
可以通过maven的官网下载:http://maven.apache.org/
注意:在安装前请确保机器上已经安装了jdk,并且jdk的版本最好是7以上的。
-
解压
将maven解压,解压的目录中最好不要含有空格、中文或者其他特殊符号。
解压后目录如下:
bin:maven的命令
boot:含有一个类加载器,通常情况下不使用
conf:maven的配置文件
lib:maven的jar包,这里是maven运行时需要的jar包,并非用户在项目中的jar包
-
配置maven环境变量
配不配都行,因为主要是在IDEA这种IDE里集成使用,所以可以不用配环境变量
添加一个环境变量:
变量名:MAVEN_HOME
变量值:填写你的maven的解压目录,我本地的是:D:\apache-maven-3.5.2
之后在path中添加;%MAVEN_HOME%\bin
注意前面使用”;”与其他值隔开。
-
验证是否配置成功
在cmd中输入mvn -v
如果显示出当前mvn的版本号,则说明maven的安装成功
三.Maven配置
修改本地仓库配置
在maven的安装目录的conf文件夹下有一个settings.xml文件,打开后,可以看到有一项:
修改国内maven镜像
maven可以自动帮我们下载相关的依赖jar包,默认情况下会从国外的服务下载,因此网络经常会出现问题,所以强烈建议修改为国内的maven镜像服务器,这样就可以从国的服务器上下载相关jar包了。这里配置国内的阿里云镜像,在setting.xml中找到mirrors标签下添加下面内容(注意位置不要放错):
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
四.IDEA设置maven
idea中点击file–>settings(快捷键ctrl + alt + s),打开之后找到maven的设置项,需要选择一下添加阿里云镜像设置的那个settings.xml文件。
五.使用idea创建Maven项目
创建一个模块,然后选择maven
填写公司或组织机构名字,模块名字,版本号
java文件夹上右键,标记为sources root
文件夹上右键,标记为resources root
创建成功,最终样式:
创建成功后进入项目:
dependency中的三者简称为gav,相当于坐标
pom.xml文件
这里面maven是根据dependency中的坐标来搜索并自动下载相关jar包的:
groupId:当前组织机构的名称,通常使用域名倒写的方式
artifactId:实际项目名称
version:当前项目的当前版本
这三个内容有时被称为gav。通过上面三个内容,就可以定位到具体的jar包,也就是说,开发者只需要配置以上三个内容,maven就能够自动下载你需要的jar包了。
那上面这些内容去哪里查找呢?
通常那些第三方库的官网都会写有这个dependency,我们直接拷贝到自己的pom.xml文件中即可。
除此之外,我们还可以去maven中央仓库查找:http://mvnrepository.com
这里面一般会有第三方jar包的dependency。
maven插件
当你创建好一个maven工程之后,默认的jdk版本是1.5,此时在开发工具中修改其版本之后,刷新maven之后,该maven工程会自动的恢复jdk1.5的版本了,如果需要解决这个问题的话,可以在properties中填写下面内容
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>13</maven.compiler.source>
<maven.compiler.target>13</maven.compiler.target>
sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>13</maven.compiler.source>
<maven.compiler.target>13</maven.compiler.target>