Maven的安装和配置

1 在windows上安装maven

1.1 下载maven

访问maven的下载页面:http://maven.apache.org/download.cgi,选择版本下载即可。

1.2 本地安装

解压下载的安装文件到指定目录中(比如我的是:F:\Program Files\apache-maven-3.3.9),接着需要设置环境变量,将maven安装配置到操作系统中。

打开系统属性面板(右键点击“我的电脑”—>“属性”),单击高级系统设置,再单击环境变量,在系统变量中新建一个变量,变量名为MAVEN_HOME,变量值为maven的安装目录F:\Program Files\apache-maven-3.3.9。接着在系统变量中找到一个名为Path的变量,在变量的末尾加上%MAVEN_HOME%\bin;。注意:Path变量中多个值需要用分号隔开。至此,环境变量设置完成。详细情况如下图:

配置完环境变量之后,可以运行命令:mvn -v来检查maven的安装情况,运行结果如下图所示:

1.3 关于Path环境变量

当我们在cmd中输入命令时,windows首先会在当前目录中寻找可执行的文件或脚本,如果没有找到,windows会接着遍历环境变量Path中定义的路径。由于刚才将%MAVEN_HOME%\bin添加到了Path中,而%MAVEN_HOME%实际上是引用了前面定义的另一个变量,其值是maven的安装目录,所以上面的mvn -v命令实际上是windows调用F:\Program Files\apache-maven-3.3.9\bin中的mvn执行脚本来执行的。

2 Maven安装目录分析

maven安装完成后,目录结构如下图:

  • bin:该目录包含了mvn运行的脚本,这些脚本用来配置Java命令,准备好classpath和相关的Java系统属性,然后执行Java命令。
  • boot:该目录只包含一个文件—plexus-classworlds的jar文件,plexus-classworlds是一个类加载器框架,maven使用该框架加载自己的类库,对于一般的maven用户,不必关心该文件。
  • conf:该目录包含了一个非常重要的文件setting.xml。直接修改该文件,就能在机器上全局的定制maven的行为。
  • lib:该目录包含了所有maven运行时需要的Java类库,可以说,lib目录就是真正的maven。
  • LICENSE:记录了maven使用的软件许可证。
  • NOTICE:记录了maven包含的第三方软件。
  • README.txt:就不说了。

注意:用于可以选择将setting.xml文件放在conf目录中或者~/.m2/settings.xml中。前者是全局范围的,整台机器上的所有用户都会受到该配置的影响,而后者是用户范围的,只有当前用户才会受到该配置的影响,这个根据具体情况来选择即可。

参考:

《Maven实战》

Maven学习笔记—安装和配置的更多相关文章

  1. maven学习--1.安装与配置

    转自 http://www.cnblogs.com/xdp-gacl/p/3498271.html 1.下载地址:http://maven.apache.org/download.cgi 2.解压缩包 ...

  2. Maven整理笔记の安装及配置

      第一部分:在Windows上安装Maven    检查JDK的安装 在安装Maven之前,首先确认你已经正确安装了JDK.Maven可以运行在JDK1.4及以上版本.先打开Windows命令,运行 ...

  3. blfs(systemd版本)学习笔记-安装、配置和使用wpa_supplicant无线网络连接工具

    我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错! wireless项目地址:http://www.linuxfromscratch.org/blfs/view/stable-sy ...

  4. blfs(systemv版本)学习笔记-安装、配置和使用wpa_supplicant无线网络连接工具

    我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错! wireless项目地址:http://www.linuxfromscratch.org/blfs/view/8.3/basic ...

  5. MySQL学习笔记——安装及配置环境

    1.安装的版本为mysql-5.6.24-win32.1432006610压缩版 查看教程http://jingyan.baidu.com/article/f3ad7d0ffc061a09c3345b ...

  6. Maven学习笔记—仓库

    Maven仓库 1 什么是Maven仓库 在Maven中,任何一个依赖.插件或者项目构建的输出,都可以成为构件,而Maven通常在某个位置统一的存储所有Maven项目共享的构件,这个统一的位置就是Ma ...

  7. Maven 学习笔记(二)

    前面一文——Maven 学习笔记(一)中已经提到了 pom 的大部分配置,Maven 本质上是一个插件框架,它的核心并不执行任何具体的构建任务,所有这些任务都交给创建来完成,每一个任务都会对应一个插件 ...

  8. Maven学习笔记-03-Eclipse下maven项目在Tomcat7和Jetty6中部署调试

    现在最新的Eclipse Luna Release 已经内置了Maven插件,这让我们的工作简洁了不少,只要把项目直接导入就可以,不用考虑插件什么的问题,但是导入之后的项目既可以部署在Tomcat也可 ...

  9. 学习笔记_J2EE_SpringMVC_03_注解配置_@RequestMapping用法

    @RequestMappingde的用法 摘要: 主要介绍注解@RequestMapping的用法 一.@RequestMapping 简介 在Spring MVC 中使用 @RequestMappi ...

随机推荐

  1. [ci] 基于1 上文实现拉取代码后能自动触发sonar-runner实现代码扫描评测,job1完成

    基于1 上文实现拉取代码后能自动触发sonar-runner实现代码扫描评测,job1完成   添加sonar插件 SonarQube Plugin   配置: 系统设置à告知jenkins,sona ...

  2. python 开发技巧(2)-- Django的安装与使用

    一.安装Django pip3 install django 或者直接使用PyCharm安装 参考 二.添加环境变量 将 "(python安装路径)\Scripts" 添加到环境变 ...

  3. 【转】Android自动化测试(UiAutomator)——UiObject

    本文主要讲解使用UiAutomator的一些技巧,希望对于初学者有一定的帮助 UiObject 1.首先要声明对象 UiObject XXX = new UiObject(new Selector) ...

  4. [AC自己主动机+状压dp] hdu 2825 Wireless Password

    题意: 给n.m,k ,再给出m个单词 问长度为n的字符串.至少在m个单词中含有k个的组成方案有多少种. 思路: 因为m最大是10,所以能够採取状压的思想 首先建立trie图,在每一个单词的结束节点标 ...

  5. Unity3D学习笔记——NGUI之UITable

    UITable:这个控件可以方便的排列其他小组件,并能控制小组件之间的距离. 效果如下: 这个控件的效果和UIGrid很相似,区别是UIGrid能控制每个小组件的大小,而这个 控件控制的是小组件之前的 ...

  6. Unity3D学习笔记——NGUI之UISlider

    UISlider:用于创建简单的滑动块和进度条,并且可以添加一个拇指按钮. 效果图如下: 一:使用步骤 1.从上面的效果看出,这个工具由四部分组成:背景图,进度图,进度lable显示,拇指按钮. 2. ...

  7. Android-ViewPagerIndicator框架使用——Circle

    前言:Circle适用于应用新功能的展示页和商品的多张图片的展示功能. 1.定义布局文件:SampleCirclesDefault中添加了一个布局:simple_circles. 布局中定义一个Lin ...

  8. python3----连接字符串数组(join)

    join 方法用于连接字符串数组 s = ['a', 'b', 'c', 'd'] print(''.join(s)) print('-'.join(s)) results: abcd a-b-c-d ...

  9. OpenCV学习笔记四:ImgProc模块

    一,简介 这个模块包含一系列的常用图像处理算法. 二,分析 此模块包含的文件如下图: 其导出算法包括如下: /*********************** Background statistics ...

  10. CGI FastCGI PHP-CGI PHP-FRM

    CGI(Common GateWay Interface )通用网关接口,CGI可以让一个客户端,从网页浏览器向执行在Web服务器上的程序请求数据.CGI描述了客户端和这个程序之间传输数据的一种协议标 ...