让我看看,是谁还不会配置Maven?

发表于:2021-11-09 09:43

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:果冻    来源:思否

#
maven
#
Maven
  Windows上安装Maven
  首先我们需要知道的事情是Maven是依赖JDK的,所以不管是在Windows还是Linux,需要使用Maven,就必须要先安装JDK。每个版本Maven对JDK的版本要去都不一致,我们可以去Maven的官网下载页,可以看到Maven的安装要求。
  对于Windows的安装来说,我们直接下载对应的安装包即可。关于Windows上安装Maven不是这篇文章的重点,我这里也就一笔带过。

  Linux上安装Maven
  从Maven的官网下载安装包以后,进行解压。解压后得到apache-maven-3.6.0这个包;然后执行ln -s apache-maven-3.6.0 maven命令创建一个软链接,然后在系统环境变量PATH中添加以下环境变量:
export M2_HOME=~/maven
export PATH=$PATH:$M2_HOME/bin

  检查Maven是否安装成功,只需要输入mvn -v,如果输出如下图所示,就是安装成功了。

  安装成功
  肯定就有小伙伴会问了,为什么要创建一个软链接。其实在Linux上安装软件包,我都有一个习惯,应该是我们整个公司也都是这样要求的。安装软件包时,会在安装目录旁平行的创建一个符号链接,以方便将来升级;以后Maven升级时,只需要下载新版本的Maven包,解压放在平行目录,然后修改这个链接就可以了。

  Maven安装目录分析
  M2_HOME环境变量指向Maven的安装目录。我们可以看到Maven安装目录下有以下文件和文件夹:
  conf:
  该目录包含了一个非常重要的文件settings.xml。直接修改该文件,就能在机器上全局地定制Maven的行为。而一般情况下,我们都会复制该文件至~/.m2目录下,然后修改该文件,在用户范围定制Maven的行为;
  bin:该目录包含了mvn运行的脚本,这些脚本用来配置Java命令,配置好classpath和相关的Java系统属性,然后运行执行Java命令。该目录除了包含Unix和Windows平台运行的脚本外,还包含一个m2.conf文件,这是classworlds的配置文件,后续还会细说;
  boot:
  该目录下只有一个plexus-classworlds-2.5.2.jar文件,plexus-classworlds是一个类加载器框架,相对于默认的Java类加载器,它提供了个更丰富的语法以方便配置,Maven使用该框架加载自己的类库;
  lib:
  该目录包含了所有Maven运行时需要的Java类库,Maven是分模块开发的,所以这里有多个Jar包。
  NOTICE:
  记录了Maven包含的第三方软件;
  LICENSE:
  记录了Maven使用的软件许可证;
  README.txt:
  记录了Maven的简要介绍,包含安装需求及如何安装的简要命令等。

  Maven安装最佳实践
  最佳实践一:设置MAVEN_OPTS环境变量
  运行mvn命令实际上是执行了Java命令,既然是运行Java,那么运行Java命令可用的参数当然也应该在运行mvn命令时可用。
  通常需要设置MAVEN_OPTS的值为-Xms128m -Xmx512m,因为Java默认的最大可用内存往往不能够满足Maven运行的需要。我们一般把MAVEN_OPTS设置成环境变量。

  最佳实践二:配置用户范围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文件。

  总结
  这是一篇特别基础的Maven安装教程,对于Maven的入门有一定的帮助,希望大家能通过我的整个系列可以入门Maven,丰富自己的工具库。

  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号