Maven的安装和配置

得意时要看淡,失意时要看开。不论得意失意,切莫大意;不论成功失败,切莫止步。志得意满时,需要的是淡然,给自己留一条退路;失意落魄时,需要的是泰然,给自己觅一条出路Maven的安装和配置,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

在Windows上安装Maven

  1. 检查系统上的JDK环境,通过下面的命令,在cmd中输入:
echo %JAVA_HOME%
java -version

如果没有安装JDK,则需要到oracle官网下载JDK,然后在环境变量中进行配置。

  1. 下载Maven
    直接去Maven官网下载,它是Apache的子项目,开源免费的。具体版本根据自己的需求来选择。
    Windows系统上,下载 bin.zip结尾的包。src.zip结尾的包,包含源代码。
  2. 本地安装
    解压刚刚下载的zip包,解压在自己指定的路径即可。
    修改Windows的环境变量,打开的方式如下两种

    计算机 -> 右键选择属性 -> 高级系统设置 -> 环境变量
    或者
    控制面板 -> 右上角搜索框输入env -> 点击 编辑账户的环境变量

  • 如果没有添加系统变量的权限,则操作用户变量
    新建用户变量,变量名:M2_HOME 变量值:Maven的安装路径,例如我的:E:\devtools\apache-maven-3.3.9
  • 修改名为Path的用户变量,在变量值得末尾加上%M2_HOME%\bin;。
    注意:多个值需要用分号隔开。
  • 验证刚刚的配置,打开cmd输入:
    echo %M2_HOME%
    mvn -v		检查windows是否可以找到正确的mvn脚本,如果出现	版本信息,就说明成功了。
    
  1. 升级Maven
    手动升级,需要再次去Maven官网下载新的版本,本地解压,然后只用修改M2_HOME环境变量的变量值,指定为新的版本路径即可。

基于Unix系统上的安装

tar.gz包从官网下载好

解压

tar -xzv -f [**.tar.gz] -C [解压的路径]

例如:

tar -xzv -f apache-maven-3.6.3-bin.tar.gz /User/maven/

配置环境变量

vi ~/.bash_profile

增加
M2_HOME=[解压的路径]

例如:
M2_HOME=/User/maven/apache-maven-3.6.3

在PATH后追加M2_HOME
PATH=$PATH:$M2_HOME/bin

export PATH

修改保存后,执行 source ~/.bash_profile

测试

mvn -v

安装目录分析

打开Maven的安装目录,有下列的文件夹:

文件夹名 介绍
bin 该目录包含了mvn运行的脚本
boot 该目录只包含一个文件,是一个类加载器框架
conf 该目录用来存放配置文件,比较重要文件:settings.xml
lib 该目录包含了所有Maven运行时需要的Java类库

具体的树结构和作用如下:

E:.
│  LICENSE		Maven使用的软件许可证
│  NOTICE		记录Maven包含的第三方软件
│  README.txt	包含了简单介绍,包括安装需求和安装指令等
│
├─bin
│      m2.conf		是classworlds的配置文件
│      mvn		是基于UNIX平台的shell脚本
│      mvn.cmd		是基于Windows平台的脚本。在命令行中输入任何mvn命令,都是调用它和上一个
│      mvnDebug		是基于UNIX平台的shell脚本
│      mvnDebug.cmd		是基于Windows平台的脚本。比mvn.cmd只多了一条MAVEN_DEBUG_OPTS配置
│      mvnyjp
│
├─boot
│      plexus-classworlds-2.5.2.jar		一个类加载器框架,相当于默认的类加载器
│
├─conf
│  │  settings.xml	重要的配置文件
│  │  toolchains.xml
│  │
│  └─logging
│          simplelogger.properties
│
└─lib
    │  aether-api-1.0.2.v20150114.jar
    │  aether-api.license
    │  aether-connector-basic-1.0.2.v20150114.
    │  aether-connector-basic.license
    │  aether-impl-1.0.2.v20150114.jar
    │  aether-impl.license
    │  aether-spi-1.0.2.v20150114.jar
    │  aether-spi.license
    │  aether-transport-wagon-1.0.2.v20150114.
    │  aether-transport-wagon.license
    │  aether-util-1.0.2.v20150114.jar
    │  aether-util.license
    │  aopalliance-1.0.jar
    │  cdi-api-1.0.jar
    │  cdi-api.license
    │  commons-cli-1.2.jar
    │  commons-io-2.2.jar
    │  commons-lang-2.6.jar
    │  commons-lang3-3.4.jar
    │  commons-lang3.license
    │  guava-18.0.jar
    │  guice-4.0-no_aop.jar
    │  javax.inject-1.jar
    │  jsoup-1.7.2.jar
    │  jsoup.license
    │  jsr250-api-1.0.jar
    │  jsr250-api.license
    │  maven-aether-provider-3.3.9.jar
    │  maven-aether-provider.license
    │  maven-artifact-3.3.9.jar
    │  maven-artifact.license
    │  maven-builder-support-3.3.9.jar
    │  maven-builder-support.license
    │  maven-compat-3.3.9.jar
    │  maven-compat.license
    │  maven-core-3.3.9.jar
    │  maven-core.license
    │  maven-embedder-3.3.9.jar
    │  maven-embedder.license
    │  maven-model-3.3.9.jar
    │  maven-model-builder-3.3.9.jar
    │  maven-model-builder.license
    │  maven-model.license
    │  maven-plugin-api-3.3.9.jar
    │  maven-plugin-api.license
    │  maven-repository-metadata-3.3.9.jar
    │  maven-repository-metadata.license
    │  maven-settings-3.3.9.jar
    │  maven-settings-builder-3.3.9.jar
    │  maven-settings-builder.license
    │  maven-settings.license
    │  org.eclipse.sisu.inject-0.3.2.jar
    │  org.eclipse.sisu.inject.license
    │  org.eclipse.sisu.plexus-0.3.2.jar
    │  org.eclipse.sisu.plexus.license
    │  plexus-cipher-1.7.jar
    │  plexus-cipher.license
    │  plexus-component-annotations-1.6.jar
    │  plexus-interpolation-1.21.jar
    │  plexus-sec-dispatcher-1.3.jar
    │  plexus-sec-dispatcher.license
    │  plexus-utils-3.0.22.jar
    │  slf4j-api-1.7.5.jar
    │  slf4j-api.license
    │  slf4j-simple-1.7.5.jar
    │  slf4j-simple.license
    │  wagon-file-2.10.jar
    │  wagon-file.license
    │  wagon-http-2.10-shaded.jar
    │  wagon-http-shared-2.10.jar
    │  wagon-http-shared.license
    │  wagon-http.license
    │  wagon-provider-api-2.10.jar
    │  wagon-provider-api.license
    │
    └─ext
            README.txt

settings.xml文件

从上可知,在conf文件夹下,有一个settings.xml文件。可以直接修改该文件,就能在机器上全局的定制Maven的行为。

maven的配置文件settings.xml存在于两个地方:

  1. 安装的地方:${M2_HOME}/conf/settings.xml
  2. 用户的目录:${user.home}/.m2/settings.xml

前者被叫做全局配置,对操作系统的所有使用者生效;
后者被称为用户配置,只对当前操作系统的使用者生效。

如果两者都存在,它们的内容将被合并,并且用户范围的settings.xml会覆盖全局的settings.xml。

Maven安装后,用户目录下不会自动生成settings.xml,只有全局配置文件。如果需要创建用户范围的settings.xml,可以将安装路径下的settings复制到目录${user.home}/.m2/。Maven默认的settings.xml是一个包含了注释和例子的模板,可以快速的修改它来达到你的要求。
  
最佳实践:
一般情况下,我们是偏向于copy该文件到用户目录下(~/.m2/), ~表示用户目录,然后进行修改。例如:C:\Users\Administrator.m2

全局配置一旦更改,所有的用户都会受到影响,而且如果maven进行升级,所有的配置都会被清除,所以要提前复制和备份${M2_HOME}/conf/settings.xml文件,一般情况下不推荐配置全局的settings.xml。

关于settings.xml的详细说明,也可以参考官方描述:

apache maven setting.xml

用户目录下,还有个名为repository的文件夹,这是Maven的本地仓库
测试,在cmd中执行下面的命令,就可以看到Maven在下载相关插件和jar包到repository文件夹中

mvn help:system

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/155850.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!