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。

Maven--Maven 安装最佳实践的更多相关文章

  1. MySQL 5.7安装最佳实践

    MySQL 5.7安装最佳实践 1.环境准备OS: CentOS Linux release 7.4.1708 (Core) for VMwareMySQL: mysql-5.7.24-linux-g ...

  2. Maven安装最佳实践(Windows平台)

    第一步:下载maven,解压缩. 在maven官网下载maven文件,这里我下载的是"apache-maven-2.2.1-bin.zip",如果需要maven的源代码,可以选择下 ...

  3. (七)Maven使用的最佳实践

    这里说一下在使用Maven过程中不是必须的,但十分有用的几个实践,关键时刻或许能解决您的问题. 1.设置MAVEN_OPTS环境变量 通常需要设置MAVEN_OPTS的值为-Xms128m -Xmx5 ...

  4. Maven 教程(7)— Maven使用的最佳实践

    原文地址:https://blog.csdn.net/liupeifeng3514/article/details/79544201 1.设置MAVEN_OPTS环境变量 通常需要设置MAVEN_OP ...

  5. Maven 版 JPA 最佳实践(转)

    项目结构图 数据库环境 数据库:MySQL 版本:5.x 数据库名:jpa-demo 用户名密码:root/1234 代码清单 1:数据库脚本: ? 1 2 3 4 5 6 7 8 9 10 11 1 ...

  6. Maven 版 JPA 最佳实践

    项目结构图 数据库环境 数据库:MySQL 版本:5.x 数据库名:jpa-demo 用户名密码:root/1234 代码清单 1:数据库脚本: /* Navicat MySQL Data Trans ...

  7. Vertica 7.1安装最佳实践(RHEL6.4)

    一.前期准备工作 1.1各节点IP和主机名 1.2上传脚本并设定环境变量 1.3添加信任 1.4前期准备检查并调整 二.Vertica安装 三.集群性能评估 一.前期准备工作: 1.1各节点IP和主机 ...

  8. [转译] AD RMS 安装最佳实践

    在安装活动目录权限管理服务(ADRMS)时,请牢记以下几点: 将 AD RMS服务单独安装在一台服务器上——将 AD RMS与域控制器.微软邮件服务器(Microsoft Exchange Serve ...

  9. Oracle 11.2 RAC on Redhat 6.5 安装最佳实践

    本文讲述了在Redhat 6.5 上安装Oracle 11.2 RAC的详细步骤,是一篇step by step指南,全文没有什么技术难度,只要一步步跟着做就一定能安装成功. 环境介绍 分类 项目 说 ...

随机推荐

  1. javascript中的私有作用域

    我们知道js中所有的块级作用域都是无效的,块级作用域内的变量,在外部仍然可以被读取,其实是申明在外部的.如何实现变量的私有化,只在块级作用域起效,避免污染全局的变量呢.而且,挂载在全局的变量很难被回收 ...

  2. Mybatis实体类的映射文件中select,insert语句使用

    id:在命名空间中唯一的标识符,可以被用来引用这条语句. parameterType:设置传入这条语句的参数的数据类型,如int,String...... resultType:设置从这条语句中返回数 ...

  3. tensorflow-cnnn-mnist

    #coding=utf-8import tensorflow as tfimport numpy as npimport matplotlib .pyplot as pltfrom tensorflo ...

  4. 【LeetCode】解数独

    做题之前先复习下[STL中的Tuple容器] 我们知道,在Python中,大家都知道tuple这个概念,是一个只读的元素容器,容器内的元素数据类型可以不同,而在CPP中大部分的容器只能储存相同数据类型 ...

  5. 使用ansible tasks生成linux巡检报告

    一直想做个关于资源巡检的功能,其需求就是通过邮件的形式来查看linux资源的使用情况,超出一定的阈值时高亮显示出来.也有人说啦,这个需求通过监控zabbix, prometheus都能做呀,何必自己重 ...

  6. Pytorch_torch.nn.MSELoss

    Pytorch_torch.nn.MSELoss 均方损失函数作用主要是求预测实例与真实实例之间的loss loss(xi,yi)=(xi−yi)2 函数需要输入两个tensor,类型统一设置为flo ...

  7. RecyclerView+FloatingActionButton应用

    一.效果图 二.实现步骤 1.XML布局-添加依赖 <LinearLayout android:id="@+id/layout" android:layout_width=& ...

  8. Android进阶——多线程系列之异步任务AsyncTask的使用与源码分析

    AsyncTask是一种轻量级的异步任务类,它可以在线程池中执行后台任务,然后把执行的进度和最终结果传递给主线程并主线程中更新UI,通过AsyncTask可以更加方便执行后台任务以及在主线程中访问UI ...

  9. electron app弹出默认对话框后页面失去焦点问题

    最近再做electron app程序的做删除数据操作的时候遇到一个诡异的bug,页面点击删除按钮后,弹出确认对话框后,页面失去焦点,文本框无法点击输入任何参数,但是使用浏览器操作正常,最后确定是ele ...

  10. Comet OJ - Contest #15(B: 当我们同心在一起 )

    题目链接 题目描述 平面上有 nn 个坐标相异的点,请问当中有多少组非共线的三个点,这三个点的 外心 也在这 nn 个点之中? 输入描述 第一行有一个正整数 nn 代表平面上的点数. 接下来有 nn  ...