[Maven]详细介绍

Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。当你使用Maven的时候,你用一个明确定义的项目对象模型来描述你的项目,然后Maven可以应用横切的逻辑,这些逻辑来自一组共享的(或者自定义的)插件。

Maven 有一个生命周期,当你运行 mvn install 的时候被调用。这条命令告诉 Maven 执行一系列的有序的步骤,直到到达你指定的生命周期。遍历生命周期旅途中的一个影响就是,Maven 运行了许多默认的插件目标,这些目标完成了像编译和创建一个 JAR 文件这样的工作。

此外,Maven能够很方便的帮你管理项目报告,生成站点,管理JAR文件,等等。

  • 安装Maven核心程序
1:检查JAVA_HOME环境变量   
在CMD窗口 输入 echo %JAVA_HOME%  
返回JAVA_HOME的路径表示正确
2:安装MAVEN:解压到非中文无空格路径下
3:配置Maven的环境变量
        1:MAVEN_HOME或M2_HOME  (一般配置MAVEN_HOME就可以了,但是配置了M2_HOME可以避免一些奇怪的问题,所以配置M2_HOME也可以,我们配置的是M2_HOME)
            M2_HOME:D:\Maven\apache-maven-3.2.2(Maven的bin目录的上一级)

            path:D:\Maven\apache-maven-3.2.2\bin(Maven的bin目录)
4:新打开CMD窗口,运行 mvn -v 命令查看Maven版本

    Apache Maven 3.2.2 (XXX; 2014-06-17T21:51:42+08:00)
    Maven home: D:\Maven\apache-maven-3.2.2
    Java version: 1.8.0_65, vendor: Oracle Corporation
    Java home: D:\Java\jdk1.8.0_65\jre
    Default locale: zh_CN, platform encoding: GBK
    OS name: "windows 10", version: "10.0", arch: "amd64", family: "dos"

    出现版本之后则安装成功。
5:修改Maven的Jar包目录

    Maven的Jar包默认在用户[家]目录下C:\Users\Jia\.m2\repository下

    修改Maven的Jar包目录:maven\conf\settings.xml

    <settings>

        将注释释放掉
        <localRepository>/path/to/local/repo</localRepository>

        改为:

        <localRepository>/path/to/local/repo</localRepository>

    </settings>
  • Maven命令
        [1]mvn clean : 清理 (删除target目录)
        [2]mvn compile:编译主程序 (与src同级目录下生成target目录,target目录下有classes,存放编译的class文件)
        [3]mvn test-compole (与target目录下生成test_target目录,存放编译的class文件)
        [4]mvn package : 打包 (与target目录下生成XXX.jar[5]mvn test : 执行测试 (与target目录下生成surefire-reports目录,存放测试报告)
        [6]mvn install : 安装 (将工程安装到仓库)
        [7]mvn site : 生成站点 (将工程信息生成一个html,包含了工程的信息)
  • POM
pom.xml是Maven的核心文件,重要程度相当于web.xml
  • 坐标
Maven使用下面三个变量来定位一个工程

        1:groupid : 公司域名倒序+项目名

            <groupid>com.jia.maven</groupid>

        2:artifactid : 模块名

            <artifactid>Hello</artifactid>

        3:version : 版本

            <version>1.0.0<version>

        4:Maven工程的坐标与仓库中路径的关系

            规则:<groupid>\<artifactid>\<version>\<artifactid>+<version>

            例如:
            <groupid>org.springframework</groupid>
            <artifactid>spring-core</artifactid>
            <version>4.0.0.RELEASE<version>

            路径:org\springframework\spring-core\4.0.0.RELEASE\spring-core-4.0.0.RELEASE
  • 仓库
            [1]本地仓库:当前电脑上部署的仓库目录

            [2]远程仓库:
                (1):私服:假设在当前局域网下,为当前局域网内的所有Maven工程服务

                    注:如果私服中找不到相应的Jar包,会自动去中央仓库寻找Jar包,下载下来                   
                (2):中央仓库:架设在互联网上,为全世界的Maven工程服务

                (3):中央仓库镜像:为了分担中央仓库的流量,提升用户的访问速度

            [3]仓库中保存的内容:Maven工程

                [1]Maven自身所需要的插件
                [2]第三方框架Jar[3]我们自己开发的Maven工程
  • 依赖
            1:Maven解析依赖的信息时,会向本地的仓库查找被依赖的Jar
                对于我们自己开发的Maven工程,在工程的根目录使用mvn install命令
                将工程安装到本地仓库

            2:依赖的范围:主要分析下面三种参数的范围

                compile:
                    对主程序是否有效:有效
                    对测试程序是否有效:有效
                    是否参与打包:参与

                test:
                    对主程序是否有效:无效
                    对测试程序是否有效:有效
                    是否参与打包:不参与

                provided:此参数一般指部署过程,开发时Jar有效,部署和运行时Jar无效,由服务器提供Jar,
                      比如:servlet-api.jar(由Tomcat可提供)

                    对主程序是否有效:有效
                    对测试程序是否有效:有效
                    是否参与打包:不参与
                    是否参与部署:不参与
  • 生命周期
                1:各个构建的环节顺序不能打乱,必须按照正确的顺序来执行
                2:Maven的核心程序定义了生命周期,由各个插件来执行
                3:Maven核心程序为了更好的实现自动化构建,按照下面特点执行的生命周期的各个阶段:不论执行执行生命周期的哪个阶段,都会从生命周期的最初位置开始执行。
                4:插件和目标:生命周期的各个阶段仅仅定义了要执行的任务,各个阶段和插件的目标是对应的,相似的目标由特定的插件来完成。

                5:可以将目标看作调用插件功能的命令。
  • 在Eclipse中设置Maven
                Window -> Preferences -> MyEclipse -> Maven4MyEclipse

                1:InstallationsAdd Maven的安装目录
                2:User Settings 设置Maven/conf/settings文件的目录
  • 构建工程,JDK默认为1.5版本,如何永久的设置jdk为1.7版本呢?
全局的jdk,在setting.xml文件中的profiles元素下添加如下profile元素

<profile>  
    <id>jdk-1.7</id>  
    <activation>  
        <activeByDefault>true</activeByDefault>  
        <jdk>1.7</jdk>  
    </activation>  
    <properties>  
        <maven.compiler.source>1.7</maven.compiler.source>  
        <maven.compiler.target>1.7</maven.compiler.target>  
        <maven.compiler.compilerVersion>1.7</maven.compiler.compilerVersion>  
    </properties>   
</profile> 
  • Eclipse中执行Maven命令
点击工程中的pom.xml右键 -> Run As
  • 如何添加Maven命令
点击工程中的pom.xml右键 -> Run As ->Build... ->在Goals栏中填写要添加的Maven命令
(例如填写:compile  编译命令)
  • 聚合工程
  <!-- 
    假设有Person父工程, project、project1、project2为子工程
    那么只需要在Person父工程pom.xml配置如下即可
    注:Person父工程pom.xml中
        <packaging>pom</packaging>
        packaging必须为pom
  -->  
  <modules>  
      <module>../project</module>  
      <module>../project1</module>  
      <module>../project2</module>  
  </modules>
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值