zoukankan      html  css  js  c++  java
  • Maven 概述

    一、什么是 Maven

    Maven 是一款服务于 Java 平台的自动化构建工具,它可以帮助我们构建和管理对象.

     

    二、为什么要使用 Maven

    不使用 Maven 的情况 使用 Maven 的情况
    一个项目就是一个工程,如果项目非常庞大,工程之间关系很负责,不好分工协作 借助于 Maven 可以将一个项目拆分为多个模块,每一个模块对应一个工程,利于分工协作
    项目中需要的 jar 包必须手动复制、粘贴到 WEB-INF/lib 目录下,同样的 jar 包文件重复出现在不同的项目工程中,一方面浪费存储空间,另外一方面也让工程比较臃肿 借助于 Maven 可以将 jar 包仅仅保存在仓库中,如果工程中有需要使用某一个 jar 包,通过仓库引入即可,不需要去把 jar 包复制过来
    不同技术的官网提供 jar 包下载的形式五花八门,比如有些技术的官网就是通过 Maven 或 SVN 等专门的工具来提供下载的,如果以不规范的方式下载 jar 包,那么其中的内容很可能是不规范的 借助于 Maven 可以以一种规范的方式下载 jar 包,因为所有知名的框架或第三方工具的 jar 包都是按照统一的规范存放在 Maven 的中央仓库中,同时以规范的方式下载的 jar 包,内容也是可靠的
    一个 jar 包依赖其它的 jar 包需要我们自己手动的加入项目中,例如 commons-fileupload-1.3.jar 依赖 commons-io-2.0.1.jar ,如果所有 jar 包之间的依赖关系都需要我们自己去清楚的连接,那么就会极大的增加学习成本 借助于 Maven 可以将被依赖的 jar 包自动的导入进来

     

    三、如何使用 Maven

    1、官网下载 Maven

    https://maven.apache.org/

    2、安装 Maven

    在安装 Maven 之前需要先安装 jdk ,maven 3.2.5 版本要求 jdk1.6 ,其后的版本要求 jdk1.7,如果你的 jdk 版本高于 1.7 也是可以的

    3、解压

    Maven 不需要安装,只需要将 Maven 的压缩包解压到无中文、无空格的目录下即可

    4、配置环境变量

    M2_HOME设置为: Maven 解压的目录

    PATH设置为: 原PATH;%M2_HOME%/bin

    5、测试

    win + R---->cmd---->进入 Dos 控制台---->mvn --version

    如果能看到如下信息,代表 Maven 安装配置成功

     

    四、Maven 常用配置

    在进行 Maven 配置之前我们先简单的介绍一个概念---settings.xml

    1、什么是 settings.xml,它的作用是什么?

    从 settings.xml 的文件名就可以看出,它是用来设置 Maven 参数的配置文件.我们可以通过配置 settings.xml 来实现修改本地仓储位置、修改远程仓储服务器、配置认证信息等等.

    2、settings.xml 的存放位置

    settings.xml 文件一般存在于两个位置,分别是全局范围的 settings.xml 和 用户范围的 settings.xml

    3、全局范围的 settings.xml

    我们从 Maven 官网将 Maven 下载下来之后,解压压缩包到指定目录(我这里的安装目录是 E:JavaDevelopMavenapache-maven-3.6.0),在 Maven 的安装目录下有一个 conf 目录,点开之后如下图所示,这个目录里面有一个 settings.xml 配置文件,这个配置文件就称为 Maven 的全局 settings.xml

    当然在实际工作中我们会为 Maven 配置环境变量,变量名一般是 M2_HOME ,值就是 Maven 的安装目录

    所以大家一般说的 Maven 全局配置文件就是 ${M2_HOME}/conf/settings.xml

    4、用户范围的 settings.xml

    用户范围的 settings.xml 配置文件是不存在的,我们需要先在 user.home.m2 (由于我这里是 Win 10 系统,路径为: C:UsersAdministrator.m2 )目录下新建一个 settings.xml 文件,一般是将全局的 settings.xml 复制过来,然后再进行相应的修改

    为什么要在 C:UsersAdministrator.m2 目录下新建 settings.xml 呢?

    因为这个目录是 Maven 默认使用的路径,当我们创建 Maven 项目时它会自动识别该目录,这一点我们从 IDE 工具也可以得出结论,如下图所示,在没有指定要任何路径的情况下, IDEA 会自动识别 C:UsersAdministrator.m2 下的 settings.xml 配置文件

    置, {user.home} 和所有其它系统属性只能在 3.0+ 版本上使用.(请注意 windows 和 Linux 使用变量的区别)

    全局范围的 settings.xml 和 用户范围的 settings.xml 我们该配置哪一个呢?

    一般情况下我们需要配置的是用户级别的 settings.xml,因为如果配置全局范围的 settings.xml,所有的用户都会受到影响,并且如果我们要对 Maven 进行升级的话,全局配置范围的 settings.xml 就会被升级后 Maven 的 settings.xml 配置文件覆盖掉,那么以前的配置就全都失效了,而配置用户范围的 settings.xml 就不会存在这些问题,因为用户范围的 settings.xml 只存在用户的 .m2 目录下,它的内容是固定不变的,Maven 升级对它根本不存在任何的影响,所以建议工作中配置用户范围的 settings.xml

    5、如何配置 settings.xml

    根据上面的解释,我们这里就在用户范围的 settings.xml 进行相关配置,如果你想配置全局范文的 settings.xml,配置的方法和用户的是一模一样的,我们这里就介绍几个常用的配置

    5.1、更换 Maven 本地仓库位置

    Maven 本地仓库默认位置为 ~/.m2/repository (我这里是 win10 系统,默认路径为 C:UsersAdministrator.m2 epository)

    5.2、配置阿里云镜像仓库

    如果我们不配置任何镜像,那么我们下载 jar 包就会默认使用中央仓库,中央仓库使用的是国外的服务器,下载速度很慢,这个时候就需要更换国内的服务器镜像站点来获得更好的下载速度,这里配置的是阿里云镜像,当然你也可以配置其它的镜像.

    在 settings.xml 配置文件的 mirror 标签中进行如下配置

    <mirror>
    	<!-- 自定义 id 名, id 不重复即可 -->
    	<id>nexus aliyun</id>
    	<!-- 自定义 name 名, name 不重复即可 -->
    	<name>Nexus aliyun</name>
    	<!-- 所有访问都使用该镜像仓库 -->
    	<mirrorOf>*</mirrorOf>
    	<!-- 阿里云镜像仓库地址 -->
    	<url>http://maven.aliyun.com/nexus/content/groups/public</url>
    </mirror>
    

    5.3、配置 Maven 的 jdk 版本

    Maven 默认使用 jdk 1.5 来创建项目,如果我们实际的项目版本高于 jdk 1.5,那么可能就有一些功能无法得到支持,所以需要配置 jdk 版本,来适应项目的实际需求

    在 settings.xml 配置文件的 <profiles> </profiles> 标签中进行如下配置

    <profile>
    	<id>jdk-1.8</id>
    	<activation>
    		<activeByDefault>true</activeByDefault>
    		<jdk>1.8</jdk>
    	</activation>
    	<properties>
    		<maven.compiler.source>1.8</maven.compiler.source>
    		<maven.compiler.target>1.8</maven.compiler.target>
    		<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
    	</properties>
    </profile>
    

      

     

  • 相关阅读:
    vue项目-百度地图-初始化展示覆盖范围(默认中心点和半径),点击切换中心点,地图落点(带数字)
    echarts地图下钻(全国到省)下钻一次
    JSON取值(key是中文或者数字)方式详解
    Chrome 80跨域cookie无法携带
    将博客搬至CSDN
    Django模板渲染,运行时如果报错:TemplateDoesNotExist at
    使用allure serve查看报告提示allure-results does not exists的解决方法
    jupyter lab不能自动打开浏览器和默认打开chrome浏览器的解决办法
    Chrome浏览器安装SwitchyOmega_Chromium插件,以及导入Burp Suite证书,抓取https请求包
    vue安装
  • 原文地址:https://www.cnblogs.com/xiaomaomao/p/14133331.html
Copyright © 2011-2022 走看看