zoukankan      html  css  js  c++  java
  • 【项目管理和构建】——Maven下载、安装和配置(二)

    【项目管理和构建】——Maven下载、安装和配置(二)

    前言

    在上篇博文【项目管理和构建】——Maven简介(一)中我们了解到maven是一种全新的项目构建方式,让我们的开发更加简单,高效。Maven主要做的是两件事:

    1. 统一开发规范与工具

    2. 统一管理jar包

    这两件事情他都做到了,而且还做了更多的事情。Maven还可以管理项目的整个声明周期,包括编 译,构建,测试,发布,报告等等。目前Apache下绝大多数项目都已经采用Maven进行管理。而Maven本身还支持多种插件,可以方便更灵活的控制项目。

    工欲善其事,必先利其器。咱们也来玩玩 Maven 这货吧!先得去下载一个。

    准备工作

    安装

    安装maven超级简单,总共分四步:

    1. 下载 Maven ,其实就是一个压缩包,解压一下

      这里写图片描述

    2. 配置一下环境变量

      有两个环境变量可以配置:

      • MAVEN_HOME = D:mavenapache-maven-3.2.3

      • MAVEN_OPTS = -Xms128m -Xmx512m(可选)

    3. 在path变量末尾加入“%MAVEN_HOME%in;”。

      以上M2_HOME 是必须要配置的,如果想让 Maven 跑得更快点,可以根据自己的情况来设置 MAVEN_OPTS。 
      这里写图片描述

    4. 最后,验证是否安装成功

      现在我们打开 cmd,输入:

      mvn -v

      我想您一定会看到一些信息,如下图所示: 
      这里写图片描述

    恭喜您,Maven 安装成功!

    在使用 Maven 之前,我们必须要了解一下 Maven 到底是怎样管理 jar 包的,这就是 Maven 仓库要干的活了。

    了解Maven仓库

    使用 Maven 给我们带来的最直接的好处,就是统一管理jar 包,那么这些 jar 包存放在哪里呢?它们就在您的 本地仓库 中,默认地址位于 C:Users用户名.m2 目录下(当然也可以修改这个默认地址),下面我们就修改一下这个默认地址。

    实际上我们可以将本地仓库理解“缓存”,目的是存放jar包。开发项目时项目首先会从本地仓库中获取 jar 包,当无法获取指定 jar 包的时候,本地仓库会从 远程仓库(或 中央仓库) 中下载 jar 包,并“缓存”到本地仓库中以备将来使用。

    远程仓库(中央仓库)是 Maven 官方提供的,可通过 http://search.maven.org/ 来访问。这样一来,本地仓库会随着项目的积累越来越大。通过下面这张图可以清晰地表达项目、本地仓库、远程仓库之间的关系。

    这里写图片描述

    既然 Maven 安装了,那么本地仓库也就有了,默认路径在我们C盘目录下,对于专业人士来说C盘很危险,下面我们修改一下默认配置。

    配置

    Maven会将下载的类库(jar包)放置到本地的一个目录下,如果想重新定义这个目录的位置就需要修改Maven本地仓库的配置:

    修改文件:D:mavenapache-maven-3.2.3confsetting.xml

    2.打开conf文件夹下的settings.xml文件,找到第53行,把注释去掉,修改成:

    <localRepository>D:maven epository</localRepository>

    依据该配置,Maven就会将下载的类库保存到D:maven epository中。

     

    实验一下我们刚才做的事情产生作用没有,控制台输入:

    mvn help:system

    如图所示效果: 
    这里写图片描述

    如果没有任何问题,执行完该命令之后,在D:maven epository下面就会多出很多文件,这些文件就是maven从中央仓库下载到本地仓库的文件,maven已经开始为我们工作了。

    总结

    这么好的项目管理工具还在等什么,赶紧安装试一下吧。

    下篇博文我们配置一下Eclipse,将它和maven结合,并且创建一个简单maven项目,马上送到。

  • 相关阅读:
    How to function call using 'this' inside forEach loop
    jquery.validate.unobtrusive not working with dynamic injected elements
    Difference between jQuery.extend and jQuery.fn.extend?
    Methods, Computed, and Watchers in Vue.js
    Caution using watchers for objects in Vue
    How to Watch Deep Data Structures in Vue (Arrays and Objects)
    Page: DOMContentLoaded, load, beforeunload, unload
    linux bridge
    linux bridge
    EVE-NG网卡桥接
  • 原文地址:https://www.cnblogs.com/handsome1013/p/5412409.html
Copyright © 2011-2022 走看看