zoukankan      html  css  js  c++  java
  • Maven工具学习(一)——Maven的介绍与安装

    image

    1、Maven简介

           Maven的英文翻译为“专家”,“内行”。Maven是Apache下一个纯Java开发的开源项目,它是一个跨平台的项目管理工具,即针对Java平台的项目构建和依赖的管理。Maven提供了开发人员构建一个完整的生命周期框架,从清理、编译、测试、报告、打包、再到最后的部署。简单来说Maven就方便Java项目的构建,同时也方便开发者对项目的管理。

           Maven在企业中使用非常的广泛,虽然用的很多,但是有些人对于Maven的发音任然不标准。Maven 读音是 [ˈmeɪvn]。可以读作“霉文”或者”麦文”,但是不能读成”妈文”、”某文”等。

    (1)项目构建

           我们首先要区别的是,项目构建并不是项目创建的意思,项目创建只是一个工程的创建过程,而项目构建过程包括:【清理→编译→测试→报告→打包→部署】这几个步骤,这六个步骤就是一个项目的完整构建过程。

    image

    (2)依赖管理

           依赖指的是项目与jar包之间的相互依赖,比如我们在使用Spring框架的时候,需要用到Spring依赖的jar包。而依赖管理指的就是使用Maven来管理项目中使用到的jar包,Maven管理的方式就是“自动下载项目所需要的jar包,统一管理jar包之间的依赖关系”。比如在文件上传的时候,光光有common-fileupload这个jar包是不行的,common-fileupload还依赖于common-io这个包jar包,此时由于Maven的依赖管理机制,都会帮我们自动下载这些包,我们并不需要管。

    image

    2、为什么使用Maven

       为什么使用Maven我们首先得去分析传统项目管理的缺陷有哪些:

    1. jar包需要我们自己去网上下载,非常的麻烦,而且有些jar包根本找不到。
    2. 如果某个jar需要依赖其它jar包的话,还需要去找依赖的jar包,而且很有可能我们漏掉了某个依赖关系,就会导致项目运行报错。
    3. 没有对jar包的版本统一管理,容易导致版本冲突。
    4. 传统的一个项目就是一个工程。如果项目比较庞大,那么利用包名来划分模块,显然容易造成混淆而且不利于分工合作。
    5. 传统项目的部署和迁移不方便,容易出现错误。

       根据以上缺陷便可以总结出使用Maven的好处:

    1. 避免四处找jar包。
    2. 消除Jar包之间的相互依赖。
    3. 避免Jar包冲突
    4. 项目拆分多个模块。
    5. 项目的步署和迁移方便,甚至分步式部署也很方便。

    3、Maven的下载

        Maven的下载地址为:https://maven.apache.org/download.cgi

    -------------------------------------------------------------------------------------------------------------------------------------------

    image

       

        点击apache-maven-3.6.3-bin.zip下载。这里当然选择的是最新的版本,下载成功之后,在电脑上解压。

        解压后的文件目录如下所示:

    image

       下面介绍一下各个文件的作用:

    1. bin目录:包含 maven运行时的脚本, 这些脚本用来配置Java命令,准备好 classpath和相关的java系统属性。 其中:mvn 是UNIX平台的shell脚本, mvn.cmd 是Windows平台的 bat脚本, mvcDebug 是UNIX的调试脚本, mvcDebug.cmd 是Windows平台的 调试脚本。
    2. boot目录:包含两个文件。 其中plexus-classworlds-2.6.0.jar ,是一个类加载器框架。Maven可以使用它,来加载自己的类库。
    3. conf目录:是配置文件目录,其中有一个 settings.xml 文件,用来配置maven。还有一个 logging文件,日志记录,来配置日志的相关信息。
    4. lib目录:maven运行时,所需要的类库。 里面放置了大量的 .jar 类库及对应的软件许可证 .license.
    5. LICENSE:Maven使用的软件许可证。
    6. NOTICE:Maven包含的第三方软件
    7. README.txt:Maven的简单介绍,包括安装需求和安装的简要指令。

       我们光下载了Maven的文件是不行的,还得配置全局变量,下面是对Maven的配置。

    4、Maven的配置

        注意:Maven是依赖于JDK的,所以我们在安装 Maven之前,电脑上必须先安装 JDK。

        首先右击此电脑—>属性—>高级系统设置—>高级—>环境变量。

    image

    ①、新建系统变量:MAVEN_HOME。变量值:D:Mavenapache-maven-3.6.3(这是你Maven的存储路径)

    image


    ②、编辑系统变量:Path。添加变量值:%MAVEN_HOME%in。其中“%MAVEN_HOME%in”代表的就是”D:Mavenapache-maven-3.6.3in“目录。

    image

    ③、检验配置是否成功:用win键+R,输入cmd进入dos命令,输入mvn -v,出现如下信息则表明成功!

    image

    ④、配置运行参数环境变量(可选配置):MAVEN_OPTS。变量值:-Xms128m -Xmx512m。

    image

    因为Maven使用来Java来启动的,所以依赖于JVM。所以可以通过JAVA命令参数的方式来设置MAVEN运行参数。

    5、Maven的优化

       ①、修改本地仓库位置。

       Maven管理的jar包默认是存储在C盘用户目录下的 .m2 下的repository中。

    image

        如果你和我一样有强迫症的话(不喜欢把无关系统的东西放在C盘),可以更改Maven的存储位置。

        首先我们找到解压的Maven文件,然后打开conf目录下的setting.xml。

        大概在55行左右我们加入如下配置文件:

    <localRepository>D:/Maven/maven-repository</localRepository>

        我把它存放在D盘下。

    image

       ②、修改镜像源。

       Maven默认下载jar包是从中央仓库下载的,所以我们在国内下载jar包是非常非常的慢,所以我们需要改一下,这里推荐阿里云的仓库。

       大概在setting.xml中的第159行左右我们加入如下配置文件:

    <mirror>
    	<id>nexus-aliyun</id>
    	<name>nexus-aliyun</name>
    	<url>http://maven.aliyun.com/nexus/content/groups/public</url>
    	<mirrorOf>central</mirrorOf>
    </mirror>

    image

    ③、修改Maven默认的JDK版本。

       我们在使用编辑软件开发时,编辑软件总是默认给我们设置奇奇怪怪的JDK版本,导致程序总是莫名的报错,这一点我是采过坑的。自己电脑上安装的什么版本的JDK我们就设置对应的JDK版本就可以了。

       大概在setting.xml中的第218行左右我们加入如下配置文件:

    <profile>
    	<id>jdk-1.8</id>
    	<activation>
    		<jdk>1.8</jdk>
    		<activeByDefault>true</activeByDefault>
    	</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>
    

       我的是JDK1.8版本。

    image

  • 相关阅读:
    $Poj2228$/洛谷$SP283 Naptime$ 环形$DP$
    $Poj1952 $洛谷$1687 Buy Low,Buy Lower$ 线性$DP+$方案计数
    $Poj3585 Accumulation Degree$ 树形$DP/$二次扫描与换根法
    洛谷$1541$ 乌龟棋 线性$DP$
    $Loj10157$ 皇宫看守 树形$DP$
    $loj10156/$洛谷$2016$ 战略游戏 树形$DP$
    $Loj10155$ 数字转换(求树的最长链) 树形$DP$
    洛谷$2015$二叉苹果树
    $CH5302$ 金字塔 区间$DP$/计数类$DP$
    [hiho1035] 自驾旅行III
  • 原文地址:https://www.cnblogs.com/tanghaorong/p/13030947.html
Copyright © 2011-2022 走看看