Maven系列(二)之安装和配置详解

摘要:
//Maven.apache.org/download.html在此处下载最新版本的Maven 3.3.9,将下载的apache-Maven-3.3.9-bin.zip文件解压缩到安装目录C,其中C:变量值为Maven,因为我的环境变量Path_HOME变量中未配置JAVA,所以我们只需在Path_HOME变量中添加JAVA即可。

检查JDK环境

在安装Maven之前,首先要确认你已经正确安装了JDK。Maven可以运行在JDK 1.4及以上的版本上。

打开cmd输入: java -version

Maven系列(二)之安装和配置详解第1张

下载Maven

Maven官网:http://maven.apache.org/download.html

这里下载此时此刻的最新版本Maven 3.3.9版本

Maven系列(二)之安装和配置详解第2张

解压下载好的apache-maven-3.3.9-bin.zip文件到C:Program Files目录下,然后添加环境变量步骤如下:

打开系统属性面板(在桌面上右击“我的电脑”→“属性”),单击高级系统设置,再单击环境变量,在系统变量中新建一个变量,变量名为M2_HOME,变量值为Maven的安装目录C:Program Filesapache-maven-3.3.9-binapache-maven-3.3.9。

单击“确定”按钮,接着在系统变量中找到一个名为Path的变量,在变量值的末尾加上%M2_HOME%in。

Maven系列(二)之安装和配置详解第3张Maven系列(二)之安装和配置详解第4张

然后在cmd中输入:mvn -v 来查看Maven是否安装成功:

Maven系列(二)之安装和配置详解第5张

这里出现个小问题,因为我环境变量Path中没有配置JAVA_HOME变量,所以Maven找不到所依赖的JDK,我们只需要在Path中加入JAVA_HOME变量即可,如下图:

Maven系列(二)之安装和配置详解第6张

然后重启cmd(更改环境变量后需要重新启动cmd才能将更改后的环境变量识别出来~切记),输入命令:mvn -v 如下图:

Maven系列(二)之安装和配置详解第7张

此时,Maven安装成功~~~

在这里普及下Path的知识:当我们在cmd中输入命令时,Windows首先会在当前目录中寻找可执行文件或脚本,如果没有找到,Windows会接着遍历环境变量Path中定义的路径。

由于将%M2_HOME%in添加到了Path中,而这里%M2_HOME%实际上是引用了前面定义的另一个变量,其值是Maven的安装目录。因此,Windows会在执行命令时搜索目录C:Program Filesapache-maven-3.3.9-binapache-maven-3.3.9in,而mvn执行脚本的位置就是这里。

 Maven系列(二)之安装和配置详解第8张

升级Maven

Maven更新比较频繁,因此用户往往会需要更新Maven安装以获得更多、更酷的新特性,并避免一些旧的bug。

在Windows上更新Maven非常简便,只需要下载新的Maven安装文件,解压至本地目录,然后更新M2_HOME环境变量即可。

安装目录分析

前面讲到设置M2_HOME环境变量指向Maven的安装目录,后文所有使用M2_HOME的地方都指代了该安装目录。

先看下目录的结构和内容,如下图:

Maven系列(二)之安装和配置详解第9张

bin:

该目录包含了mvn运行的脚本,其中mvn是基于UNIX平台的shell脚本,mvn.bat是基于Windows平台的bat脚本。在命令行输入任何一条mvn命令时,实际上就是在调用这些脚本。

该目录还包含了mvnDebug和mvnDebug.bat两个文件,那么mvn和mvnDebug有什么区别和关系呢?打开文件我们就可以看到,两者基本是一样的,只是mvnDebug多了一条MAVEN_DEBUG_OPTS配置,其作用就是在运行Maven时开启debug,以便调试Maven本身。

此外,该目录还包含m2.conf文件,这是classworlds的配置文件,后面会介绍classworlds。

boot:

该目录只包含一个文件,以maven 3.3.9为例,该文件为plexus-classworlds-2.5.2.jar。plexus-classworlds是一个类加载器框架,相对于默认的java类加载器,它提供了更丰富的语法以方便配置,Maven使用该框架加载自己的类库。更多关于classworlds的信息请参考http://class-worlds.codehaus.org/。对于一般的Maven用户来说,不必关心该文件。

conf:

该目录包含了一个非常重要的文件settings.xml。直接修改该文件,就能在机器上全局地定制Maven的行为。一般情况下,我们更偏向于复制该文件至~/.m2/目录下(~表示用户目录),然后修改该文件,在用户范围定制Maven的行为。后面将会多次提到settings.xml,并逐步分析其中的各个元素。

lib:

该目录包含了所有Maven运行时需要的Java类库,Maven本身是分模块开发的,因此用户能看到诸如maven-core-3.0.jar、maven-model-3.0.jar之类的文件。此外,这里还包含一些Maven用到的第三方依赖,如common-cli-1.2.jar、google-collection-1.0.jar等。

其他文件:

其他:LICENSE.txt记录了Maven使用的软件许可证Apache License Version 2.0;NOTICE.txt记录了Maven包含的第三方软件;而README.txt则包含了Maven的简要介绍,包括安装需求及如何安装的简要指令等。

~/.m2:

我们先运行一条命令: mvn help:system

该命令会打印出所有的Java系统属性和环境变量,这些信息对我们日常的编程工作很有帮助。运行这条命令的目的是让Maven执行一个真正的任务。我们可以从命令行输出看到Maven会下载maven-help-plugin,包括pom文件和jar文件。这些文件都被下载到了Maven本地仓库中。

 Maven系列(二)之安装和配置详解第10张

可以到~/.m2/repository/org/apache/maven/plugins/maven-help-plugin/2.2目录下找到刚才下载的maven-help-plugin的pom文件和jar文件,如下图:

Maven系列(二)之安装和配置详解第11张

默认情况下,~/.m2目录下除了repository仓库之外就没有其他目录和文件了,不过大多数Maven用户需要复制M2_HOME/conf/settings.xml文件到~/.m2/settings.xml。这是一条最佳实践。

设置HTTP代理

有时候你所在的公司基于安全因素考虑,要求你使用通过安全认证的代理访问因特网。这种情况下,就需要为Maven配置HTTP代理,才能让它正常访问外部仓库,以下载所需要的资源。

编辑~/.m2/settings.xml文件:

Maven系列(二)之安装和配置详解第12张

免责声明:文章转载自《Maven系列(二)之安装和配置详解》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Android内存泄露YAML-CPP下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

linux文件特殊属性介绍(s,s,t)

文件的权限有rwx这3个读、写、执行的权限。但是,怎么 /tmp权限有些奇怪?还有, /usr/bin/passwd也有些奇怪,怎么回事呢? [root@linux ~]# ls -ld /tmp ; ls -l /usr/bin/passwddrwxrwxrwt 5 root root 4096 Jul 20 10:00 /tmp-r-s--x--x 1...

报错:Error while fetching metadata with correlation id 67 : {alarmHis=LEADER_NOT_AVAILABLE}

报错背景: 单机安装了kafka,创建完成主题,启动生产者的时候产生报错现象。报错时持续不断打印日志信息。 报错现象: [2019-05-21 09:43:52,790] WARN [Producer clientId=console-producer] Error while fetching metadata with correlation id...

FreeRTOS学习及移植笔记之二:在IAR和STM32F103VET上移植FreeRTOS

上一次,我们简单的测试了FreeRTOS的基于IAR EWARM v6.4和STM32F103VET6平台的Demo,对其有了一个基本认识。接下来我们开始自己移植FreeRTOS的过程。 1、创建一个“FreeRTOSTestProject”项目文件夹,并在其下创建FreeRTOS、Libraries、Project、User文件夹。 与无操作系统的项目...

GIT安装完需要做以下配置

安装完GIT后需要做以下配置: 一、找到git的安装目录,查找etc目录下的gitconfig配置文件,编辑此文件在最后一行添加如下内容: [gui]     encoding = utf-8 [svn]     pathnameencoding = gbk [i18n]     commitencoding = gbk [i18n]          l...

nutch+hadoop 配置使用

nutch+hadoop 配置使用 配置nutch+hadoop 1,下载nutch。如果不需要特别开发hadoop,则不需要下载hadoop。因为nutch里面带了hadoop core包以及相关配置 2,建立目录(根据自己喜好) /nutch /search       (nutch installation goes here) nutch安装到这里...

Myeclipse安装svn插件

Myeclipse安装svn插件 演示版本 myeclipse——myeclipse8.6 svn——subeclipse-site-1.6.5.zip(对应Myeclipse版本,要有对应的svn插件版本) 方法一: 1.解压svn插件到Myeclipse安装目录下(新建一个目录myplugins,并删除所有的配置文件(xml文件) 2.在Myeclip...