• 4.Maven概念模型,maven的生命周期,Maven坐标,依赖管理(依赖范围,依赖声明),仓库管理,私服概念


    

    1 maven概念模型

    2 maven的生命周期,项目构建过程

    Maven生命周期就是为了对全部的构建过程进行抽象和统一

    包含项目清理,初始化,编译,打包,測试,部署等差点儿全部构建步骤

     

    Maven有“三套”相互独立的生命周期,并且相互独立,这三套生命周期各自是:

    Maven三大生命周期

    clean:清理项目的

    在进行真正的构建之前进行一些清理工作。

    default:构建项目的

    构建的核心部分。编译。測试,打包,部署等等。

    site:生成项目网站的

    生成项目报告,网站。公布网站

    要特别注意的是:它们是相互独立的。能够只调用clean来清理工作文件夹,只调用site来生成网站。当然也能够直接执行mvn clean install site 执行着三套生命周期。

     

    clean生命周期每套生命周期都由一组阶段(Phase组成),我们平时在命令行输入的命令总会相应于一个特定的阶段。

    比方mvn clean,这个cleanClean生命周期的一个阶段。

    clean生命周期

    pre-clean

    运行一些须要在clean之前完毕的工作

    clean

    移除全部上一次构建生成的文件

    post-clean

    运行一些须要在clean之后立马完毕的工作

    注意:

    mvn clean 中的clean就是上面的clean,在一个生命周期中,执行某个阶段的时候。它之前的全部阶段都会被执行。也就是说。mvn clean等同于mvn pre-clean clean,那么pre-clean就会被执行。

    这是Maven非常重要的一个规则,能够大大简化命令行的输入。

     

    site生命周期

    pre-site

    运行须要生成网站文档之前完毕的工作

    site

    生成项目的网站文档

    post-site

    运行一些须要生成网站文档之后完毕的工作,而且为部署做准备

    site-deploy

    将生成的网站文档部署到特定的server上

    注意:

    这里经经常使用到的是site阶段和site-deploy阶段,用以生成和公布Maven网站。这但是Maven相当强大的功能,Manager比較喜欢,文档及统计数据自己主动生成。

     

    Default生命周期是Maven生命周期中最重要的一个。绝大部分工作都发生在这个生命周期中。这里。仅仅解释一些比較重要和经常使用的阶段:

    Default生命周期

    validate

     

    generate-sources

     

    process-sources

     

    generate-resources

     

    process-resources

    复制并处理资源文件,至目标文件夹,准备打包

    compile

    编译项目的源码。

    process-classes

     

    generate-test-sources

     

    process-test-sources

     

    generate-test-resources

     

    process-test-resources

    复制并处理资源文件。至目标測试文件夹

    test-compile

    编译測试源码

    process-test-classes

     

    test

    使用合适的单元測试框架执行測试。这些測试代码不会被打包或部署

    prepare-package

     

    package

    接受编译好的代码。打包成可公布的格式。如JAR

    pre-integration-test

     

    integration-test

     

    post-integration-test

     

    verify

     

    install

    将包安装至本地仓库,以让其他项目依赖

    deploy

    将终于的包赋值到远程的仓库,以让它开人员与项目共享。

    注意:

    执行不论什么一个阶段的时候。它前面的全部阶段都会被执行,这也就是为什么我们执行mvn install 的时候,代码会被编译。測试。打包。

    此外,Maven的插件机制是全然依赖Maven的生命周期的,因此理解生命周期至关重要。

     




    3 Maven坐标

    Maven坐标主要组成

    groupId :定义当前Maven项目隶属项目(习惯用包名来做)

    样例:


    artifactid:定义实际项目中的一个模板(通常是主类名)

    version:定义当前项目的当前版本号

    packaging:定义该项目的打包方式(jar,war等方式)



    4 依赖管理(依赖范围,依赖声明)

    依赖范围(scope

    依赖声明

    <dependencies>

                       <dependency>

                                <groupId>junit</groupId>

                                <artifactId>junit</artifactId>

                                <version>4.10</version>

                                <scope>test</scope>

                       </dependency>

    </dependencies>

    当中依赖范围scope 用来控制依赖和编译。測试,执行的classpath的关系.基本的是三种依赖关系例如以下:

    1.       compile:默认编译依赖范围。对于编译,測试,执行三种classpath都有效

    2.       test:測试依赖范围。仅仅对于測试classpath有效

    3.       provided:已提供依赖范围。对于编译。測试的classpath都有效。但对于执行无效。因此由容器已经提供,比如servlet_api

    4.       runtime:执行时提供。比如:jdbc驱动

     

    传递性依赖:

     

    见传递依赖图

     

    传递性依赖影响范围

    传递性依赖原则:

     

    A-->B

    A-->C

     

    1.路径近期者优先

    2.路径同样。第一声明者优先

     

    注意:

    1.dependencyManagement中定义的依赖子module不会共享

    2.dependencies中定义的依赖子module能够共享

     

    可选依赖不被传递

     

    依赖优化:mvn dependency:list

    5 仓库管理。私服概念

    何为Maven仓库

    A 用来统一存储全部Maven共享构建的位置就是仓库

    Maven仓库布局

    依据Maven坐标定义每一个构建在仓库中唯一存储路径

    大致为:groupId/artifactId/version/artifactId-version.packaging

    仓库的分类:

    本地仓库:

    ~/.m2/repository/

    每一个用户仅仅有一个本地仓库

    远程仓库

    中央仓库:Maven默认的远程仓库

    http://repo1.maven.org/maven2

    私服:是一种特殊的远程仓库。它是架设在局域网内的仓库

    镜像:用来替代中央仓库,速度一般比中央仓库块。

     

  • 相关阅读:
    关于《函数调用关键字》记忆恢复本
    进程一
    PE工具实现
    PE工具界面一
    PE各种操作
    汇编指令repne scas byte ptr es:[edi]
    Dialog
    按钮
    点和线的绘制一
    滚动条二
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/5347341.html
Copyright © 2020-2023  润新知