配置maven环境变量(maven安装及配置教程)

maven系列目标:从入门开始开始掌握一个高级开发所需要的maven技能。

这是maven系列第2篇。

本文主要内容

linux中安装maven

window中安装maven

mvn命令运行的原理

maven配置设置

本篇环境

jdk1.8

maven3.6.2

我们要写java代码,需要安装jdk,那我们要使用maven,也类似,需要在我们的机器中安装maven。

linux中安装安装maven

maven是使用java语言编写的,所以我们要运行maven,需要先安装jdk。

安装jdk下载jdk

本次我们安装jdk1.8,可以到oracle官网上去下载jdk-8u181-linux-x64.tar.gz,将其放在/opt/jdk目录中,如下:

[root@ady01jdk]#cd/opt/jdk/[root@ady01jdk]#lltotal181300-rw-r–r–1rootroot185646832Nov113:30jdk-8u181-linux-x64.tar.gz解压jdk[root@ady01jdk]#tar-zvxfjdk-8u181-linux-x64.tar.gz[root@ady01jdk]#lltotal181304drwxr-xr-x7101434096Jul72018jdk1.8.0_181-rw-r–r–1rootroot185646832Nov113:30jdk-8u181-linux-x64.tar.gz配置环境变量

在/etc/profile文件末尾追加下面几行

exportJAVA_HOME=/opt/jdk/jdk1.8.0_181exportPATH=$JAVA_HOME/bin:$PATHexportCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

这个地方扩展个知识点:

有个知识点我们说一下,系统运行java或者其他外部命令的时候,系统是如何找到这些命令的?

linux中会去PATH对应的所有目录中寻找这个命令,找到了就可以直接运行,如果没有设置PATH,我们需要知道命令的完整路径才可以运行,所以使用PATH更方便一些。

运行下面命令使环境变量生效[root@ady01jdk1.8.0_181]#source/etc/profile验证jdk是否正常

查看jdk版本

[root@ady01jdk]#java-versionjavaversion”1.8.0_181″Java(TM)SERuntimeEnvironment(build1.8.0_181-b13)JavaHotSpot(TM)64-BitServerVM(build25.181-b13,mixedmode)

新建/opt/jdk/HelloWorld.java,内容如下:

publicclassHelloWorld{publicstaticvoidmain(String[]args){System.out.println(“hello maven!”);}}

运行下面的命令:

[root@ady01jdk]#cd/opt/jdk/[root@ady01jdk]#javacHelloWorld.java[root@ady01jdk]#javaHelloWorldhello maven!

恭喜,输出hello maven表示正常,jdk安装成功!

安装maven下载maven

https://maven.apache.org/download.cgi

最新的版本是apache-maven-3.6.2,linux中我们需要下载apache-maven-3.6.2-bin.tar.gz这个。

[root@ady01jdk]#mkdir/opt/maven[root@ady01jdk]#cd/opt/maven/[root@ady01maven]#wgethttp://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.2/binaries/apache-maven-3.6.2-bin.tar.gz–2019-11-0113:47:11–http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.2/binaries/apache-maven-3.6.2-bin.tar.gzResolvingmirrors.tuna.tsinghua.edu.cn(mirrors.tuna.tsinghua.edu.cn)…101.6.8.193,2402:f000:1:408:8100::1Connectingtomirrors.tuna.tsinghua.edu.cn(mirrors.tuna.tsinghua.edu.cn)|101.6.8.193|:80…connected.HTTPrequestsent,awaitingresponse…200OKLength:9142315(8.7M)[application/octet-stream]Savingto:‘apache-maven-3.6.2-bin.tar.gz’100%[==================================================================================================================================>]9,142,31510.2MB/sin0.9s2019-11-0113:47:13(10.2MB/s)-‘apache-maven-3.6.2-bin.tar.gz’saved[9142315/9142315][root@ady01maven]#lsapache-maven-3.6.2-bin.tar.gz

解压maven[root@ady01maven]#tar-zvxfapache-maven-3.6.2-bin.tar.gz[root@ady01maven]#lsapache-maven-3.6.2apache-maven-3.6.2-bin.tar.gzmaven目录结构[root@ady01maven]#ll/opt/maven/maven/total40drwxr-xr-x2rootroot4096Nov113:49bindrwxr-xr-x2rootroot4096Nov113:49bootdrwxrwxr-x3mysqlmysql4096Aug2723:01confdrwxrwxr-x4mysqlmysql4096Nov113:49lib-rw-rw-r–1mysqlmysql12846Aug2723:09LICENSE-rw-rw-r–1mysqlmysql182Aug2723:09NOTICE-rw-rw-r–1mysqlmysql2533Aug2723:01README.txt

bin:存放可以执行的文件

conf:存放maven的配置文件

lib:maven是java编写的,里面会用到很多第三方的jar包,这些jar包位于lib中

创建一个软连接指向apache-maven-3.6.2目录[root@ady01maven]#ln-sapache-maven-3.6.2maven[root@ady01maven]#lltotal8936drwxr-xr-x6rootroot4096Nov113:49apache-maven-3.6.2-rw-r–r–1rootroot9142315Sep305:43apache-maven-3.6.2-bin.tar.gzlrwxrwxrwx1rootroot18Nov113:56maven->apache-maven-3.6.2

ln –s 源文件 目标文件是linux中的一个命令,windows中的快捷方式都知道吧,这个相当于给源文件创建了一个快捷方式,快捷方式的名称叫做目标文件。

ln -s apache-maven-3.6.2 maven是指给apache-maven-3.6.2创建了一个快捷方式maven,访问maven就相当于访问apache-maven-3.6.2。

此处为什么需要用快捷方式?

以后升级maven更方便一些,以后如果我们需要将maven升级到最新的版本,比如3.7,那么只需下载3.7到当前目录,再运行一下ln -s apache-maven-3.7 maven命令修改一下快捷方式的指向就行了,很方便。

配置maven环境变量

在/etc/profile文件末尾追加下面几行

exportM2_HOME=/opt/maven/mavenexportPATH=$M2_HOME/bin:$PATH运行下面的命令让环境变量生效[root@ady01maven]#source/etc/profile验证maven是否正常[root@ady01maven]#mvn-vApacheMaven3.6.2(40f52333136460af0dc0d7232c0dc0bcf0d9e117;2019-08-27T23:06:16 08:00)Mavenhome:/opt/maven/mavenJavaversion:1.8.0_181,vendor:OracleCorporation,runtime:/opt/jdk/jdk1.8.0_181/jreDefaultlocale:en_US,platformencoding:UTF-8OSname:”linux”,version:”3.10.0-693.2.2.el7.x86_64″,arch:”amd64″,family:”unix”

mvn -v输出maven的版本号信息,若输出和上面类似,那么恭喜你,maven安装成功!

window安装maven 安装jdk下载jdk

我们以jdk1.8为例,到oracle官网下载jdk-8u121-windows-x64.exe

安装jdk文件

双击jdk-8u121-windows-x64.exe运行。

配置maven环境变量(maven安装及配置教程)

配置环境变量

上图中新建环境变量JAVA_HOME,值为D:\installsoft\Java\jdk1.8.0_121,如下图:

新建环境变量CLASSPATH,值为.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar

修改环境变量PATH,在PATH的值中添加%JAVA_HOME%\bin

验证jdk是否正常

查看jdk版本,cmd窗口中运行java -version,如下:

C:\Users\Think>java-versionjavaversion”1.8.0_121″Java(TM)SERuntimeEnvironment(build1.8.0_121-b13)JavaHotSpot(TM)64-BitServerVM(build25.121-b13,mixedmode)

新建D:/HelloWorld.java,文件编码格式为utf-8,内容如下:

publicclassHelloWorld{publicstaticvoidmain(String[]args){System.out.println(“hello maven!”);}}

运行下面的命令:

C:\Users\Think>D:D:\>javac-encodingutf-8HelloWorld.javaD:\>javaHelloWorldhello maven!

恭喜,输出hello maven表示正常,jdk安装成功!

放在D:\installsoft\maven目录,如下图

配置环境变量

这个地方参考上面jdk环境变量的配置。

新建环境变量M2_HOME,值为:

D:\installsoft\maven\apache-maven-3.6.2

修改环境变量PATH,在PATH的值中添加%M2_HOME%\bin

验证maven是否正常C:\Users\Think>mvn-vApacheMaven3.6.2(40f52333136460af0dc0d7232c0dc0bcf0d9e117;2019-08-27T23:06:16 08:00)Mavenhome:D:\installsoft\maven\apache-maven-3.6.2\bin\..Javaversion:1.8.0_121,vendor:OracleCorporation,runtime:D:\installsoft\Java\jdk1.8.0_121\jreDefaultlocale:zh_CN,platformencoding:GBKOSname:”windows10″,version:”10.0″,arch:”amd64″,family:”windows”

mvn -v输出maven的版本号信息,若输出和上面类似,那么恭喜你,maven安装成功!

Maven的运行原理详解

本文后面会用到~这个符号,先对这个符号做一下说明,这个符号表示当前用户的目录

window中默认在C:\Users\用户名

linux root用户默认在/root目录,其他用户的~对应/home/用户名

后面的文章中我们就用~表示用户目录,这个地方不再说明。

运行下面命令,看一下效果

C:\Users\Think>mvnhelp:system[INFO]Scanningforprojects…Downloadingfromcentral:https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-antrun-plugin/1.3/maven-antrun-plugin-1.3.pomDownloadedfromcentral:https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-antrun-plugin/1.3/maven-antrun-plugin-1.3.pom(4.7kBat4.0kB/s)Downloadingfromcentral:https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-plugins/12/maven-plugins-12.pomDownloadedfromcentral:https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-plugins/12/maven-plugins-12.pom(12kBat21kB/s)Downloadingfromcentral:https://repo.maven.apache.org/maven2/org/apache/maven/maven-parent/9/maven-parent-9.pomDownloadedfromcentral:https://repo.maven.apache.org/maven2/org/apache/maven/maven-parent/9/maven-parent-9.pom(33kBat44kB/s)Downloadingfromcentral:https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-antrun-plugin/1.3/maven-antrun-plugin-1.3.jarDownloadedfromcentral:https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-antrun-plugin/1.3/maven-antrun-plugin-1.3.jar(24kBat12kB/s)Downloadingfromcentral:https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-assembly-plugin/2.2-beta-5/maven-assembly-plugin-2.2-beta-5.pomDownloadedfromcentral:https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-assembly-plugin/2.2-beta-5/maven-assembly-plugin-2.2-beta-5.pom(15kBat13kB/s)Downloadingfromcentral:https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-plugins/16/maven-plugins-16.pomDownloadedfromcentral:https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-plugins/16/maven-plugins-16.pom(13kBat33kB/s)Downloadingfromcentral:https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-assembly-plugin/2.2-beta-5/maven-assembly-plugin-2.2-beta-5.jarDownloadedfromcentral:https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-assembly-plugin/2.2-beta-5/maven-assembly-plugin-2.2-beta-5.jar(209kBat29kB/s)Downloadingfromcentral:https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-dependency-plugin/2.8/maven-dependency-plugin-2.8.pomDownloadedfromcentral:https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-dependency-plugin/2.8/maven-dependency-plugin-2.8.pom(11kBat14kB/s)Downloadingfromcentral:https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-dependency-plugin/2.8/maven-dependency-plugin-2.8.jarProgress(1):153kB

上面运行mvn help:system命令之后,好像从https://repo.maven.apache.org站点中在下载很多东西,最后又输出了系统所有环境变量的信息。

我们来详细看一下mvn help:system这个命令的运行过程:

运行mvn help:system之后

系统会去环境变量PATH对应的所有目录中寻找mvn命令,然后在D:\installsoft\maven\apache-maven-3.6.2\bin中找到了可执行的mvn文件

运行mvn文件,也就是执行mvn命令

通常一些软件启动的时候,会有一个启动配置文件,maven也有,mvn命令启动的时候会去~/.m2目录寻找配置文件settings.xml,这个文件是mvn命令启动配置文件,可以对maven进行一些启动设置(如本地插件缓存放在什么位置等等),若~/.m2目录中找不到settings.xml文件,那么会去M2_HOME/conf目录找这个配置文件,然后运行maven程序

mvn命令后面跟了一个参数:help:sytem,这个是什么意思呢?这个表示运行help插件,然后给help插件发送system命令

maven查看本地缓存目录(默认为~/.m2目录)寻找是否有help插件,如果本地没有继续下面的步骤

maven会去默认的一个站点(apache为maven提供的一个网站[repo.maven.apache.org],这个叫中央仓库)下载help插件到~/.m2目录

运行help插件,然后给help插件发送system指令,help插件收到system指令之后,输出了本地环境变量的信息,如果系统找不到指定的插件或者给插件发送无法识别的命令,都会报错

上面这个过程大家再感受一下,maven中所有的命令都是以插件的形式提供的,所以maven扩展也是相当容易的。

mvn 插件名称:help

上面这种会输出插件的帮助文档,来感受一个:

C:\Users\Think>mvnclean:help[INFO]Scanningforprojects…[INFO][INFO]————————————————————————[INFO]BuildingMavenStubProject(NoPOM)1[INFO]————————————————————————[INFO][INFO]—maven-clean-plugin:2.5:help(default-cli)@standalone-pom—[INFO]org.apache.maven.plugins:maven-clean-plugin:2.5MavenCleanPluginTheMavenCleanPluginisapluginthatremovesfilesgeneratedatbuild-timeinaproject’sdirectory.Thispluginhas2goals:clean:cleanGoalwhichcleansthebuild.Thisattemptstocleanaproject’sworkingdirectoryofthefilesthatweregeneratedatbuild-time.Bydefault,itdiscoversanddeletesthedirectoriesconfiguredinproject.build.directory,project.build.outputDirectory,project.build.testOutputDirectory,andproject.reporting.outputDirectory.Filesoutsidethedefaultmayalsobeincludedinthedeletionbyconfiguringthefilesetstag.clean:helpDisplayhelpinformationonmaven-clean-plugin.Callmvnclean:help-Ddetail=true-Dgoal=<goal-name>todisplayparameterdetails.[INFO]————————————————————————[INFO]BUILDSUCCESS[INFO]————————————————————————[INFO]Totaltime:0.372s[INFO]Finishedat:2019-11-01T17:59:04 08:00[INFO]FinalMemory:15M/487M[INFO]————————————————————————

这些后面还会详细介绍。

Maven的一些配置 启动文件设置

上面提到了mvn运行的时候,会加载启动的配置文件settings.xml,这个文件默认在M2_HOME/conf目录,一般我们会拷贝一个放在~/.m2目录中,前者是全局范围的配置文件,整个机器上所有用户都会受到该配置的影响,而后者是用户范围级别的,只有当前用户才会受到该配置的影响。推荐使用用户级别的,将其放在~/.m2目录,而不去使用全局的配置,以免影响到其他用户的使用。还有这样使用方便日后maven版本升级,一般情况下maven整个安装目录我们都不要去动,升级的时候只需要替换一下安装文件就可以了,很方便。

配置本地缓存目录

settings.xml中有个localRepository标签,可以设置本地缓存目录,maven从远程仓库下载下来的插件以及以后所有我们用到的jar包都会放在这个目录中,如下:

<localRepository>C:/Users/Think/.m1/repository</localRepository>总结

掌握maven的安装过程

~表示当前用户目录

maven的配置文件settings.xml一般我们放在~/.m2目录中,方便maven的升级,避免影响其他用户的配置

了解mvn命令的执行过程

Maven系列

第1篇:什么是maven?为什么需要它?

更多好文章

java高并发系列(共34篇)

mysql高手系列(共27篇)

感谢大家的阅读,也欢迎您把这篇文章分享给更多的朋友一起阅读!谢谢!

路人甲java

发表评论

登录后才能评论