一、Maven 介绍

这个单词中文翻译为“专家”或“内行”。下面将向你介绍 Maven这一跨平台的项目管理工具。作为 Apache 组织中的一个成功的开源项目,Maven 主要服务于基 Java 平台的项目构建、依赖管理和项目信息管理。无论是小型的开源类库项目,还是大型的企业级应用;无论是传统的瀑布式开发,还是流行的敏捷模式,Maven 都能大显身手。它是一个异常强大的构建工具,能够帮我们自动化构建过程,从清理、编译、测试到生成报告,再到打包和部署。我们不需要也不应该一遍又一遍地输入命令,一次又一次地点击鼠标,我们要做的是使用 Maven 配置好项目,然后输入简单的命令(如mvn clean install),Maven 会帮我们处理那些烦琐的任务。Maven 是跨平台的,这意味着无论是在 Windows 上,还是在 Linux 或者 Mac 上,都可以使用同样的命令。我们一直在不停地寻找避免重复的方法。设计的重复、编码的重复、文档的重复,当然还有构建的重复。Maven 最大化地消除了构建的重复,抽象了构建生命周期,并且为绝大部分的构建任务提供已实现的插件,我们不再需要定义过程,甚至不需要再去实现这些过程中的一些任务。最简单的例子是测试,我们没必要告诉 Maven 去测试,更不需要告诉 Maven 如何运行测试,只需要遵循 Maven的约定编写好测试用例,当我们运行构建的时候,这些测试便会自动运行。想象一下,Maven 抽象了一个完整的构建生命周期模型,这个模型吸取了大量其他的构建脚本和构建工具的优点,总结了大量项目的实际需求。如果遵循这个模型,可以避免很多不必要的错误,可以直接使用大量成熟的 Maven 插件来完成我们的任务(很多时候我们可能都不知道自己在使用Maven 插件)。此外,如果有非常特殊的需求,我们也可以轻松实现自己的插件。Maven 还有一个优点,它能帮助我们标准化构建过程。在 Maven 之前,十个项目可能有十种构建方式;有了 Maven 之后,所有项目的构建命令都是简单一致的,这极大地避免了不必要的学习成本,而且有利于促进项目团队的标准化。综上所述,Maven 作为一个构建工具,不仅能帮我们自动化构建,还能够抽象构建过程,提供构建任务实现;它跨平台,对外提供了一致的操作接口,这一切足以使它成为优秀的、流行的构建工具。

二、Maven安装

1、 Windows 上安装 Maven

1.1检查JDK环境

     在安装 Maven 之前,首先要确认你已经正确安装了 JDK。Maven 可以运行在 JDK 1.4 及以上的版本上。打开 Windows 的命令行,运行如下的命令来检查你的 Java 安装:

java -version

echo %JAVA_HOME%

1.2 下载 Maven

请访问 Maven 的下载页面:http://maven.apache.org/download.html,其中包含针对不同平台的各种版本的Maven 下载文件。本文使用apache-maven-3.3.9,,因此下载 apache-maven-3.3.9-bin.zip。当然,如果你对 Maven 的源代码感兴趣并想自己构建 Maven,还可以下载 apache-maven-3.3.9-src.zip。该下载页面还提供了 md5 校验和(checksum)文件和 asc 数字签名文件,可以用来检验 Maven 分发包的正确性和安全性。从Maven官网下载Maven安装包,解压后文件目录如下:

1.3 配置环境变量

这里的 Maven 安装目录是 G:\project\java\apache-maven-3.3.9,接着需要设置环境变量,将 Maven 安装配置到操作系统环境中。打开系统属性面板(桌面上右键单击“我的电脑”→“属性”),点击高级系统设置,再点击环境变量,在系统变量中新建一个变量,变量名为 M3_HOME,变量值为 Maven 的安装目录 G:\project\java\apache-maven-3.3.9。点击确定,接着在系统变量中找到一个名为 Path 的变量,在变量值的末尾加上%M3_HOME%\bin;,注意多个值之间需要有分号隔开,然后点击确定。至此,环境变量设置完成,详细情况如下图 所示:

1.3 在cmd控制台中,输入mvn -v,查看Maven是否安装成功,。

1.4 配置用户范围 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 文件。

进入$M2_HOME/conf/settings.xml 目录中,修改settings.xml文件中默认的全局依赖下载地址,即本地库,可以输入如"G:/project/java/repository",但这里不建议启用,所以没有打开注释部分。这样整台电脑无论是那个用户的Maven项目下载的依赖包都会默认存放在这个路径下,以后如果有新的项目,需要相同的依赖,会先从该地址中查找,如果没有,再从远处网络库中下载。

进入~/.m2/settings.xml目录中,修改settings.xml文件中默认的用户自定义的依赖下载地址,如图"G:/project/java/repository"即是我的本地库地址。

至此Maven已安装完成

SpringCloud入门之Maven系统安装及配置的更多相关文章

  1. SpringCloud入门(十): Config 统一配置中心

    SpringCloud Config 简介 在分布式系统中,由于服务组件过多,为了方便争对不通的环境下的服务配置文件统一管理,实时更新,所以出现了分布式配置中心组件.市面上开源的配置中心有很多,360 ...

  2. SpringCloud入门之常用的配置文件 application.yml和 bootstrap.yml区别

    作者其他技术文章 1) Spring Boot 简介 2)SpringCloud入门之YAML格式文件规范学习 3)SpringCloud入门之Spring Boot多环境配置切换指南 4) Elas ...

  3. SpringCloud入门之应用程序上下文服务(Spring Cloud Context)详解

    构建分布式系统非常复杂且容易出错.Spring Cloud为最常见的分布式系统模式提供了简单易用的编程模型,帮助开发人员构建弹性,可靠和协调的应用程序.Spring Cloud构建于Spring Bo ...

  4. 详解Maven用户的配置settings.xml

    Maven用户设置 作者其他技术文章 1)Oracle性能优化之查询语句通用原则 2)Redis常用命令 3) SpringCloud入门之常用的配置文件 application.yml和 boots ...

  5. Maven入门,Maven项目的创建,nexus 2.x搭建私服以及Maven多模块项目创建

    maven的了解做一个总结,以便日后查阅, 若有不足之处,还望指出,学无止境 当然也能起到入门效果. 一,搭建maven私服 1.工具 a. Nexus 2.5.1-01 b. Maven 3.3.9 ...

  6. SpringCloud(2)---SpringCloud入门篇

    SpringCloud理解篇 一.微服务概述 1.什么是微服务 目前的微服务并没有一个统一的标准,一般是以业务来划分将传统的一站式应用,拆分成一个个的服务,彻底去耦合,一个微服务就是单功能业务,只做一 ...

  7. SpringCloud入门(一)

    一.微服务概述 1.什么是微服务 目前的微服务并没有一个统一的标准,一般是以业务来划分将传统的一站式应用,拆分成一个个的服务,彻底去耦合,一个微服务就是单功能业务,只做一件事. 与微服务相对的叫巨石 ...

  8. springcloud 入门 11 (Hystrix Dashboard)

    hystrix: 断路器我在前面已经介绍,不了解的可以参考 :springcloud 入门 6 (断路器hystrix)  关于搭建,测试我都在这里面进行说明了,这章介绍的是  Hystrix Das ...

  9. springcloud 入门 5 (feign源码分析)

    feign:(推荐使用) Feign是受到Retrofit,JAXRS-2.0和WebSocket的影响,它是一个jav的到http客户端绑定的开源项目. Feign的主要目标是将Java Http ...

随机推荐

  1. linux下禁用SELinux

    http://chenzhou123520.iteye.com/blog/1313582 如何开启或关闭SELinux RedHat的 /etc/sysconfig/selinux 在新版本中的Red ...

  2. js 判断字符串中是否包含某个字符串(转载)

    from : https://www.cnblogs.com/ooo0/p/7741651.html String对象的方法 方法一: indexOf()   (推荐) var str = " ...

  3. web-day15

    第15章WEB15-AJAX和JQuery案例篇 今日任务 使用AJAX完成用户名的异步校验 使用JQuery完成用户名异步校验 使用JQuery完成商品信息模糊显示 使用JQuery完成省市联动效果 ...

  4. Javaweb异常提示信息统一处理

    Java异常封装(自己定义错误码和描述,附源码) 2016年01月29日 22:30:54 小宝鸽 阅读数:23262 标签: java异常 更多 个人分类: Java基础 所属专栏: Java工作实 ...

  5. Java 理论与实践: 用弱引用堵住内存泄漏

    弱引用使得表达对象生命周期关系变得容易了 虽然用 Java™ 语言编写的程序在理论上是不会出现“内存泄漏”的,但是有时对象在不再作为程序的逻辑状态的一部分之后仍然不被垃圾收集.本月,负责保障应用程序健 ...

  6. Codeforces Round #264 (Div. 2) E. Caisa and Tree 树上操作暴力

    http://codeforces.com/contest/463/problem/E 给出一个总节点数量为n的树,每个节点有权值,进行q次操作,每次操作有两种选项: 1. 询问节点v到root之间的 ...

  7. Http TCP/IP协议和socket之间的区别和联系

    总结,TCP/IP是传输层协议,主要解决数据如何在网路中传输,socket是TCP/IP协议的具体实现,是对TCP/IP协议的封装和应用,属于程序员层面,HTTP是应用层协议,应用层协议很多,类似的像 ...

  8. [device-orientation] 使用手机设备的方向感应实现图片选择

    <div class="main"> <h2>Device Orientation</h2> <table> <tbody&g ...

  9. F - Cookies Piles

    Description The kids in my son's kindergarten made Christmas cookies with their teacher, and piled t ...

  10. IE9的「console未被定义」错误

    IE从IE8+才支持console物件,但如上图所示,网页明明是IE9标准模式,为什么IE9却说console物件不存在? 但进行侦错,console.log()却又正常! 原因: IE8/IE9要先 ...