1.设置 MAVEN_OPTS 环境变量

运行 mvn 命令实际上是执行了 Java 命令,既然是运行 Java,那么运行 Java 命令可用的参数当然也应该在运行 mvn 命令时使用。这个时候,MAVEN_OPTS 环境变量就能派上用场。

通常需要设置 MAVEN_OPTS 的值为 -Xms128m -Xmx512m,因为 Java 默认的最大可用内存往往不能够满足 Maven 运行的需要,比如在项目较大时,使用 Maven 生成项目站点需要占用大量内存,如果没有该配置,则很容易得到 java.lang.OutOfMemoryError。因此,一开始就配置该变量是推荐的做法。

尽量不要直接修改 mvn.bat 或者 mvn 这两个Maven 执行脚本文件。因为如果修改了脚本文件,升级 Maven 时就不得不再次修改,一来麻烦,二来容易忘记。同理,应该尽可能地不去修改任何 Maven 安装目录下的文件。

参考:http://www.cnblogs.com/bukudekong/p/3819696.html

2.配置用户范围 settings.xml

Maven 用户可以选择配置 $M2_HOME/conf/settings.xml 或者 ~/.m2/settings.xml。前者是全局范围的,整台机器上的所有用户都会直接受到该配置的影响,而后者是用户范围的,只有当前用户才会受到该配置的影响。

推荐使用用户范围的 settings.xml,主要是为了避免无意识地影响到系统中的其他用户。如果有切实的需求,需要统一系统中所有用户的 settings.xml 配置,当然应该使用全局范围的 settings.xml。

除了影响范围这一因素,配置用户范围 settings.xml 文件还便于 Maven 升级。直接修改 conf 目录下的 settings.xml 会导致 Maven升级不变,每次升级到新版本的 Maven,都需要复制 settings.xml 文件。如果使用 ~/.m2 目录下的 settings.xml 就不会影响到 Maven 安装文件,升级时就不需要触动 settings.xml 文件。

3.不要使用 IDE 内嵌的 Maven

无论 Eclipse 还是 NetBeans,当集成 Maven 时,都会安装上一个内嵌的 Maven,这个内嵌的 Maven 通常会比较新,但不一定很稳定,而且往往也会和在命令行使用的 Maven 不是同一个版本。这里又会出现两个潜在的问题:首先,较新版本的 Maven 存在很多不稳定因素,容易造成一些难以理解的问题;其次,除了 IDE,也经常还会使用命令行的 Maven,如果版本不一致,容易造成构建行为的不一致,这是我们所不希望看到的。因此,应该在 IDE 中配置 Maven 插件时使用与命令行一致的 Maven。

最新文章

  1. SqlPlus中退格键和方向键的设置
  2. Mybatis关联查询(嵌套查询)
  3. Delphi XE5-XE8 以上 如何发布文件到工程中
  4. Python3.X新特性之print和exec
  5. 【Tyvj1038】忠诚 线段树
  6. WPF文本框密码框添加水印效果
  7. OpenJudge计算概论-字符串排序
  8. 黄聪:C#里如何使用WebBrowser获取处理AJAX生成的网页内容?
  9. Android向Rest服务Post数据遇到的Date类型数据问题
  10. Linux(9)后台运行python程序并输出到日志文件
  11. 关于viewports 设备像素比 密度
  12. 裸板驱动总结(makefile+lds链接脚本+裸板调试)
  13. linu_nginx_location语法
  14. cxf webservice生成客户端代码及调用服务端遇到的问题
  15. springboot之配置文件
  16. JavaScript 系列博客(二)
  17. Android 利用属ObjectAnimator,AnimatorSet性动画绘制一个弹球,加速下落,到底部时挤压,然后减速上弹
  18. 网络基础之 tcp/ip五层协议 socket
  19. Dynamic dispatch
  20. BZOJ4517:[SDOI2016]排列计数(组合数学,错排公式)

热门文章

  1. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 字体图标(Glyphicons):glyphicon glyphicon-bold
  2. Mysql升级、免安装版MYSQL安装与卸载
  3. VM虚拟机安装 常用Linux命令 网卡配置 (第二天)
  4. android 动画基础绘——view 动画
  5. c# 用户控件,usercontrol,自定义控件属性
  6. Day 5 :ArrayList原理、LinkedList原理和方法和迭代器注意事项
  7. 初识MyBatis-Generator
  8. 程序员:java中直接或间接创建线程的方法总结
  9. sendmail 的安装、配置与发送邮件的具体实现
  10. Spring原理系列一:Spring Bean的生命周期