maven的安装与配置(二)
maven可以运行在JDK1.4及以上的版本,maven是基于java开发的应用。
首先,在命令行运行命令检查JAVA安装,windows命令行下执行命令:
> echo %JAVA_HOME%
>java -version
检查JDK安装目录配置的是否正确,是否安装JDK。
JDK没问题后,下载maven软件包。
设置maven的环境变量
添加maven环境变量%M2_HOME%,值为maven的安装目录,bin的外层目录。
设置path变量,添加%M2_HOME%\bin,多个值之间用分号隔开。
path的作用:在我们执行命令的时候,首先在当前执行命令的目录查找可执行的文件或者脚本,如果没有就会遍历path设置的所有目录去查找。
验证安装是否成功,打开新的cmd窗口,因为新的配置在新的命令行窗口才会生效。
> echo %M2_HOME%
>mvn -v
检查环境变量是否正确,命令是否可以正确执行。
如果要升级maven,下载新的软件包并解压,更新M2_HOME的值就完成了。
在linux上命令基本相同,例如:echo $PATH linux查看系统环境变量在。
linux上变量名是区分大小写的,windows是不区分的。
在linux上安装maven:
下载安装包(tar.gz),在想要安装的位置执行命令:tar -xvzf maven-version.tar.gz
然后,为maven的安装目录创建一个符号链接,为后面升级的方便,命令:
ln -s 当前目录下的安装目录名 符号链接名
ln -s maven-3.0 maven maven为符号链接。
ls -l 查看当前目录下的信息。
接下来设置环境变量M2_HOME指向符号链接maven,命令:
export M2_HOME = /home/当前用户/bin/maven 符号链接的全限定名
export PATH = $PATH:$M2_HOME/bin
然后就可以验证安装路径是否正确,命令是否可以执行成功。
linux maven升级,只需要把符号链接删除,重新创建一个指向新版本maven安装目录的同名符号链接即可。
maven安装目录分析:
bin:目录中包含运行maven的脚本,这些脚本用来配置java命令,准备好classpath和相关的java系统属性,然后执行java命 令,m2.conf文件是classworlds的配置文件。
boot:包含一个类加载器框架,相对于默认的java类加载器,它提供了更丰富的语法以方便配置,maven用这个框架加载自己的 类库。
conf:该目录包含了一个非常重要的文件settings.xml,直接修改该文件,就能在机器上全局的定制maven的行为。
lib:该目录包含所有maven运行时需要的java类库。
LICENSE.txt:记录了maven使用的软件许可证
NOTICE.txt:记录了maven包含的第三方软件。
README.txt:包含了maven的简要介绍,包含安装需求及如何安装的简要指令等。
~/.m2(用户目录) maven关于用户级配置的目录:
mvn help:system:该命令会打印出所有的java系统属性和环境变量。
执行了第一条maven后,会在.m2目录下创建本地仓库,所有的maven构建都缓存在本地仓库,方便以后重用。
我们可以把settings.xml文件复制到该目录进行配置,这样我们执行mvn命令的时候会首先采用该配置,该配置是用户级的配置,使用这样的配置方式可以定义同一个系统不同用户的不同行为,推荐使用用户级的配置,这样方便maven升级。
本地仓库缓存构件的存储方式为文件系统布局方式,我们可以直接按照坐标的格式去相应的目录找到构件,方便我们删除、重新加载。
设置HTTP代理
maven支持代理功能,当我们在公司内部有要求访问公网资源需要走代理的时候,我们可以配置代理,通过代理访问公共仓库下载构件,是否需要代理可以用命令ping ip或域名、telnet ip 端口的方式校验是否需要代理,代理配置是否正确。
在settings.xml配置中配置代理,如下:
代理配置组,包含多个代理配置,第一个激活的会生效
<proxies>
用于一个代理的规范,用于连接到网络。
<proxy>
代理的ID 是一个标识
<id>optional</id>
是否激活 true是激活
<active>true</active>
代理的通信协议 http协议
<protocol>http</protocol>
代理服务器需要认证时候使用用户名/密码
用户名
<username>proxyuser</username>
密码
<password>proxypass</password>
主机名或IP地址
<host>proxy.host.net</host>
端口号
<port>80</port>
配置不需要代理的主机名或者IP 用"|"区分多个,并且支持通配符"*"
访问下列地址不需要代理
<nonProxyHosts>local.net|some.host.com|*.host.com</nonProxyHosts>
</proxy>
</proxies>
介绍一些在安装maven中不是必须的,但十分有用的实践
运行maven命令,实际上是执行了java命令,既然是运行java,那么运行java命令可用的参数当然也应该在运行mvn命令时可用,这时候MAVEN_OPTS环境变量就能派上用场,通常需要设置MAVEN_OPTS的值为 -Xms 128m -Xmx 512m,因为java默认的最大可用内存往往不能够满足maven运行的需要,比如项目较大的时候,使用maven生成项目站点的时候,需要占用大量的内存,如果没有该配置,容易报内存溢出异常,该环境变量的配置方法和M2_HOME的配置方法相同。