maven学习笔记
2016年1月6日
一、maven安装
-
windows下maven安装
- 安装maven前,首先要确认正确的安装了JDK;
- 下载maven,访问下载;
- 解压下载的maven;
- 配置maven环境变量:
- M2_HOME:maven的安装目录(解压目录);
- 设置path,在path末尾加上“%M2_HOME%\bin;” ;
- 验证maven安装,打开命令行窗口,输入如下命令:
echo %M2_HOME%
mvn -v
-
基于UNIX的系统上安装maven
安装maven前,确认正确安装了JDK;
下载maven;
-
解压下载的maven:
-
tar -xvzf apache-maven-3.0-bin.tar.gz
; - 创建符号链接,以便日后升级:
ln -s apache-maven-3.0 apache-maven
;
-
-
设置环境变量:
export M2_HOME=apache-maven
-
export PATH=$PATH:$M2_HOME/BIN
一般来说,需要将这两个命令加入到系统的登录的shell脚本中,以Ubuntu为例,编辑~/.bashrc文件,添加这两行命令,这样每次启动一个终端,这些配置就能自动执行。
-
验证安装,打开终端,输入如下命令:
echo $M2_HOME
mvn -v
-
升级maven:下载新的maven压缩包,解压缩到之前旧版本的平行目录,然后更新符号链接即可,比如:
ln -s apache-maven-3.1 apache-maven
-
maven安装最佳实践
- 设置MAVEN_OPTS环境变量,运行mvn命令实际上是执行了java命令,所以运行java命令可用的参数也可以在运行mvn命令是可用,这时候MAVEN_OPTS环境变量就可以派上用场,通常需要设置MAVEN_OPTS的值为-Xms128m-Xmx512m,因为java默认的最大可用内存往往不够满足maven运行的需要,如果没有该配置,则很容易得到内存溢出的错误。MAVEN_OPTS的配置方式参考M2_HOME的配置方式。
- 配置用户范围的setting.xml,maven用户可选择配置$M2_HOME/conf/setting.xml或者~/.m2/setting.xml,前者是全局的,而后者则是用户范围的。
- 不要使用IDE内嵌的Maven。IDE内嵌的maven往往会和在命令行使用的maven不是同一个版本,容易造成一些难以理解的问题,并且可能造成构建行为的不一致。因此应该在IDE中配置maven插件时使用与命令行一致的maven。在m2eclipse环境中,单击菜单栏的windows,然后选择preferences,在弹出的对话框中,展开左边的maven项,选择installaction子项,在右边的面板中,能够看到一个默认的embedded maven安装被选中了,单击add按钮,然后选中maven安装目录m2_home,添加完毕后选中这个外部的maven。
二、maven目录分析
- bin:该目录包含了mvn运行的脚本;
- boot:该目录包含一个类加载器框架,相对于默认的java类加载器,它提供了更丰富的语法以方便配置,maven使用该框架加载自己的类库。
- conf:该目录包含一个非常重要的文件setting.xml。直接修改该文件,就能再机器上全局的定制maven的行为,一般情况下,更倾向于复制该文件至/.m2/(表示用户目录)目录下,然后修改该文件。
- lib:该目录包含了所有maven运行时需要的java类库。
三、设置HTTP代理
-
首先确认自己无法直接访问公共的maven中央仓库。直接运行命令:
ping repo1.maven.org
-
编辑~/.m2/setting.xml文件(如果没有该文件,则复制$M2_HOME/conf/setting/xml)。添加代理配置如下:
<settings> ...... <proxies> <proxy> <id>my-proxy</id> <active>true</active> <protocol>http</protocol> <host>210.14.234.12</host> <port>2135</port> <!-- <username>***</username> <password>***</password> <nonProxyHosts>repository.mycom.com|*.google.com</nonProxyHosts> --> </proxy> </proxies> ...... </settings>`
proxies下可以有多个proxy元素,如果声明了多个proxy元素,则默认情况下第一个被激活的proxy会生效。其中nonProxyHosts用于指定哪些主机名不需要代理,可以使用“|”符号来分隔多个主机名。该配置也支持通配符。
四、安装m2eclipse
以eclipse3.6为例讲解m2eclipse的安装:
- 启动eclipse,选择菜单栏中得Help,然后选择Install New Software;
- 单击work with字段边上的Add按钮,在弹出的新的add repository对话框的name字段中输入m2e,在location字段中输入http://m2eclipse.sonatype.org/sites/m2e,然后单击ok按钮。eclipse会下载m2eclpise安装站点上得资源信息。
- 待完成【TODO】;