一、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. 20155326 《Java程序设计》第8周学习总结

    20155326 <Java程序设计>第8周学习总结 教材学习内容总结 NIO (1)NIO使用频道来衔接数据节点,在处理数据时,NIO可以让你设定缓冲区容量,在缓冲区中对感兴趣的数据区块 ...

  2. 20155326 2016-2017-2 《Java程序设计》第6周学习总结

    20155326 2016-2017-2 <Java程序设计>第6周学习总结 教材学习内容总结 InputStream与OutputStream: 串流设计的概念 (1)Java将输入/输 ...

  3. 卷积神经网络(CNN)之一维卷积、二维卷积、三维卷积详解

    作者:szx_spark 由于计算机视觉的大红大紫,二维卷积的用处范围最广.因此本文首先介绍二维卷积,之后再介绍一维卷积与三维卷积的具体流程,并描述其各自的具体应用. 1. 二维卷积 图中的输入的数据 ...

  4. PHP后台图片上传作品 接口

    //把新图片添加到文件夹里 public function info($file=''){ $info = $file->validate(['ext'=>'jpg'])->rule ...

  5. express4.x socket

    在这个版本下使用socket,配置比较麻烦. 使用实例:http://www.open-open.com/lib/view/open1402479198587.html 配置文件:BarOrderPr ...

  6. bootstrap增删改查

    <!DOCTYPE html><html> <head> <meta charset="utf-8" /> <title> ...

  7. java基础知识-算术运算符和赋值运算符

    1.算术运算符 算术运算符: +,-,*,/,% /:取的是两个数的商,当两个数是整数,不整除的情况,结果不包含小数部分 %:取的是两个数的余数. 字符串和+联合使用:此时的+称为连接符.++,--都 ...

  8. 深拷贝&浅拷贝&引用计数&写时拷贝

    (1).浅拷贝: class String { public: String(const char* str="") :_str(]) { strcpy(_str,str); } ...

  9. A - Class Statistics

    A - Class Statistics Time Limit:3000MS     Memory Limit:0KB     64bit IO Format:%lld & %llu Subm ...

  10. js获取select标签选中的值及文本

    原生js方式: var obj = document.getElementByIdx_x(”testSelect”); //定位id var index = obj.selectedIndex; // ...