设置http代理
有时候你所在的公司基于安全因素考虑,要求你使用通过安全认证的代理访问外网。
- 首先确认自己无法直接访问公共的maven中央仓库,直接运行命令
ping repo1.maven.org
可以检查网络。 - 检查代理服务器是否畅通。telnet一下代理服务器的ip和端口。
- 编辑
~/.m2/settings.xml
文件添加代理,配置如下:
<proxies>
<proxy>
<id>my-proxy</id>
<active>true</active>
<protocol>http</protocol>
<host>代理服务器ip</host>
<port>代理服务器端口</port>
<!--
<username>****</username>
<password>****</password>
<nonProxyHosts>repository.mycom.com|*.google.com</nonProxyHosts>
-->
</proxy>
</proxies>
- 如果声明了多个proxy元素,则默认第一个被激活的proxy会生效。
- active的值为true表示激活该代理。
- nonProxyHost元素用来指定哪些主机名不需要代理,可以使用“|”符号来分隔多个主机名。此外,该配置也支持通配符,例子中的*.google.com表示所有以google.com结尾的域名访问都不需要通过代理。
最佳实践
设置maven_opts 环境变量
maven 实际上和tomcat之类一样是一个Java程序,既然是java程序,那么运行Java命令可用的参数定然也可以在运行mvn命令时可用。
通常需要设置maven_opts
的值为-Xms128m-Xmx512m,防止较大的项目生成站点时出现oom。
尽量不要直接修改mvn脚本文件。因为修改脚本文件,在升级maven时不得不再次修改,一是麻烦,二是容易忘记。同理,应该尽可能不去修改任何maven安装目录下的文件。
# 在.bashrc文件中添加,然后source一下。
export MAVEN_OPTS=-Xms256m-Xmx512m
配置用户范围 settings.xml
- 安装目录下的settings文件是全局的,整台机器上的所有用户都会直接受到该配置的影响。
- 用户.m2目录下的settings文件只有当前用户才会受到该配置的影响。
- 推荐使用用户范围。
- 避免影响到系统其他用户;
- 便于升级的时候不用重新配置。
不要使用IDE内嵌的maven
- 内嵌的版本通常较新,不一定稳定;
- 内嵌版往往和命令行使用的不是同一个版本,会出现构件行为不一致。