51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 2114|回复: 0
打印 上一主题 下一主题

[转贴] Maven实战:Maven的安装与配置

[复制链接]
  • TA的每日心情
    无聊
    2024-3-7 09:16
  • 签到天数: 43 天

    连续签到: 2 天

    [LV.5]测试团长

    跳转到指定楼层
    1#
    发表于 2019-2-18 15:58:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    Maven主要服务于基于Java平台的项目构建、依赖管理和项目信息管理。

    Maven的项目构建:自动化构建过程,从清理、编译、测试到生成报告,再到打包和部署。
    Maven抽象了一个完整的构建生命周期模型;标准化构建过程。

    Maven的依赖管理:通过坐标系统准确地定位每一个构件(artifact),也就是通过一组坐标Maven能够找到任何一个Java类库(如jar文件)。

    Maven的项目信息管理:管理项目描述、开发者列表、版本控制系统地址、许可证、缺陷管理系统地址等。除了直接的项目信息,通过Maven自动生成的站点,以及一些已有的插件,还可以轻松地获得项目文档、测试报告、静态分析报告、源码版本日志报告等非常具有价值的项目信息。

    Maven还为全世界的Java开发者提供了一个免费的中央仓库,在其中几乎可以找到任何的流行开源类库。通过一些Maven的衍生工具(如Nexus),还能够对其进行快速地搜索。只要定位了坐标,Maven就能够帮我们自动下载。

    使用Maven还能享受一个额外的好处,即Maven对于项目目录结构、测试用例命名方式等内容都有既定的规则,只要遵循了这些成熟的规则,用户在项目间切换的时候就免去了额外的学习成本,可以说是约定优于配置(Convention Over Configuration)。


    1.检查JDK的安装
    安装好JDK(JDK1.4及以上版本)并设置好环境变量
    打开命令行运行:
    echo %JAVA_HOME%
    java -version


    2.下载Maven
    http://maven.apache.org/ ,版本apache-maven-3.2.1-bin.zip


    3.安装
    解压到E:\dev\maven下


    4.设置环境变量
    M2_HOME:E:\dev\maven\apache-maven-3.2.1
    PATH新增:;%M2_HOME%\bin


    5. 检测安装是否成功
    打开命令行运行:
    echo %M2_HOME%
    mvn -v
    有相关信息显示说明安装成功。


    6.安装目录分析
    (1)M2_HOME
    M2_HOME环境变量指向Maven的安装目录。该目录的结构和内容:

    1)bin:该目录包含了mvn运行的脚本,这些脚本用来配置Java命令,准备好classpath和相关的Java系统参数,然后执行Java命令。其中mvn是基于Unix平台的shell脚本,mvn.bat是基于Windows平台的bat脚本。在命令行中输入任何一条mvn命令时,实际上就是在调用这些脚本。该目录还包含了mvnDebug和mvnDebug.bat两个文件。那么mvn和mvnDebug有什么区别和关系呢?打开文件查看,可知两者基本一样,只是mvnDebug多了一条MAVEN_DEBUG_OPTS配置,其作用就是在运行Maven时开启debug,以便调试Maven本身。此外,该目录还包含m2.conf文件,这是classworlds的配置文件。

    2)boot:该目录只包含一个文件,Maven3中该文件是plexus-classworlds-2.5.1.jar。plexus-classworlds是一个类加载器框架,相对于默认的java类加载器,它提供了更丰富的语法以方便配置,Maven使用该框架加载自己的类库。对于一般的Maven用户来说,不必关心该文件。

    3)conf:该目录包含一个非常重要的文件settings.xml。直接修改该文件,就能在机器上全局地定制Maven的行为。一般情况下,我们更偏向于复制该文件至~/.m2/目录下(~表示用户目录),然后修改该文件,在用户范围定制Maven的行为。

    4)lib:该目录包含了所有Maven运行时需要的Java类库,Maven本身是分模块开发的,因此用户能看到诸如maven-core-3.2.1.jar、maven-model-3.2.1.jar之类的文件。此外,还包含一些Maven用到的第3方依赖,如common-cli-1.2.jar、guava-14.0.1.jar等。

    5)LICENSE.txt:记录了Maven使用的软件许可证Apache License Version 2.0。

    6)NOTICE.txt:记录了Maven包含的第三方软件。

    7)README.txt:包含了Maven的简要介绍,包括安装需求及如何安装的简要指令等。


    (2)~/.m2
    命令:
    mvn help:system
    该命令会打印出所有的Java系统属性和环境变量,这些信息对日常编程工作很有帮助。
    该命令会让Maven执行一个真正的任务,从命令行输出可知Maven会下载一些pom文件和jar文件,这些文件都是从Maven的中央仓库下载到Maven的本地仓库的。


    当前的用户目录:
    Windows XP:C:\Documents and Settings\huhu
    Windows 7:C:\Users\huhu
    Unix/Linux:cd回车,就可以转到当前用户目录

    ~:表示当前用户目录。

    在用户目录下可以发现.m2文件夹。默认情况下,该文件下放置了Maven本地仓库.m2/repository。所有的Maven构件都被存储到该仓库中,以便重用。Maven根据一套规则来确定任何一个构件在仓库中的位置。

    默认情况下,~/.m2目录下除了repository仓库之外没有其他目录和文件了,不过大多数Maven用户需要复制M2_HOME/conf/settings.xml文件到~/.m2/settings.xml。这是一条最佳实践。


    7.设置HTTP代理
    有时候你所在的公司基于安全因素考虑,要求你使用通过安全认证的代理访问因特网。这时就需要为Maven配置HTTP代理,才能让它正常地访问外部仓库,以下载所需要的资源。
    编辑~/.m2/setting.xml文件中如下(如果没有该文件,则复制$M2_HOME/conf/setting.xml)

    1. <settings>
    2.     <proxies>  
    3.         <proxy>
    4.             <id>my-proxy</id>
    5.             <active>true</active>
    6.             <protocol>http</protocol>
    7.             <host>218.14.227.197</host>
    8.             <port>3128</port>
    9.             <!--
    10.             <username>proxyuser</username>
    11.             <password>proxypass</password>
    12.             <nonProxyHosts>repository.mycom.com|*.google.com</nonProxyHosts>
    13.             -->
    14.         </proxy>
    15.      </proxies>
    16. </settings>
    复制代码

    这段配置十分简单,proxies下可以有多个proxy元素,如果声明了多个proxy元素,则默认情况下第一个被激活的proxy会生效。
    这里声明了一个id为my-proxy的代理,
    active的值为true表示激活该代理,
    protocol表示使用的代理协议,这里是http。
    当然,最重要是指定正确的主机名(host元素)和端口(port元素)。
    上述XML配置中注释掉了username、password、nonProxyHost几个元素。
    当代理服务需要认证时,就需要配置username和password。nonProxyHost元素用来指定哪些主机名不需要代理,可以使用"|"符号来分隔多个主机名。此外,该配置也支持通配符,如*.google.com表示所有以google.com结尾的域名访问都不需要通过代理。


    8.安装Eclise的Maven插件
    Eclipse 4.3(Kepler)默认安装Maven插件。
    在Eclipse中,单击菜单栏-File-New-Maven Project,就可以创建Maven项目。


    9.Maven安装最佳实践

    (1)设置MAVEN_OPTS环境变量
    运行mvn命令实际上是执行了java命令,既然是运行java,那么运行java命令可用的参数也应该在运行mvn命令时可用。这个时候MAVEN_OPTS环境变量就能派上用场。
    通常需要设置MAVEN_OPTS的值为-Xms128m -Xmx512m,因为java默认的最大可用内存往往不能满足Maven运行的需要,比如在项目较大时,使用Maven生成项目站点需要占用大量的内存,如果没有该配置,则很容易得到java.lang.OutOfMemeoryError。因此。推荐开始就设置该环境变量。

    关于设置环境变量,参考设置M2_HOME环境变量的做法,尽量不要直接修改mvn或mvn.bat这两个Maven执行脚本文件。因为修改了脚本文件,升级Maven时,就必须再次修改,比较麻烦,也容易忘记。
    同理,应该尽可能地不要去修改Maven安装目录下的任何文件。


    (2)配置用户范围settings.xml
    Maven用户可以选择配置$M2_HOME/conf/settings.xml或~/.m2/settings.xml。
    前者是全局范围的,整台机器上的所有用户都会直接受到该配置的影响,而后者是用户范围的,只有当前用户才会受到该配置的影响。

    推荐使用用户范围的settings.xml,主要是为了避免影响到系统中的其他用户。如果需要统一系统中所有用户的settings.xml配置,应该使用全局范围的settings.xml。

    使用用户范围的settings.xml还便于Maven升级。


    (3)不要使用IDE内嵌的Maven
    应该在IDE中配置Maven插件时使用与命令行(因为除了IDE,经常会使用命令行的Maven)一致的Maven。

    菜单栏-Windows-Preferences-Maven-Installations:
    在右侧的面板中,有一个默认的Embedded Maven被选中。单击"Add..."按钮,然后选择Maven的安装目录M2_HOME,添加完毕之后选择这个外部的Maven。


    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-4-27 05:04 , Processed in 0.063528 second(s), 23 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表