• Maven 生命周期,仓库概念和打包命令区别(package、install、deploy)


    一、Maven仓库说明

    存储jar的仓库(3种仓库)

    1.本地仓库:存储在本地磁盘,默认在系统盘c盘 用户名/.m2/xx 通过settings.xml 更改本地仓库localRepository

    2.远程仓库:一般都使用国内镜像或者公司自己搭建私服. 一般用Nexus 目的:加快下载速度 私服存在的意义:开发者电脑更新,本地仓库就有jar。目前常用的就是阿里镜像

    <mirror>
        
        <id>alimavenid>
        <mirrorOf>centralmirrorOf>
        <name>aliyun mavenname>
        <url>http://maven.aliyun.com/nexus/content/groups/publicurl>
    mirror>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    3.Maven(中央)仓库:Maven团队维护的jar包仓库Central Repository: 一般用这个查POM:http://mvnrepository.com/ 检索顺序:先检索本地仓库--再检索远程仓库--最后检索中央仓库具体可看下图示例
    在这里插入图片描述

    二、Maven的生命周期与阶段

    我们在用maven构建java项目时,最常用的打包命令有mvn package、mvn install、deploy,这三个命令都可完成打jar包或war(当然也可以是其它形式的包)的功能,但这三个命令还是有区别的。下面通过分别执行这三个命令的输出结果,来分析各自所执行的maven的生命周期。

    1、mvn clean package

    在这里插入图片描述
    在这里插入图片描述

    2、mvn clean install

    在这里插入图片描述
    在这里插入图片描述

    3、mvn clean deploy(忽略最后的BUILD FAILURE)

    在这里插入图片描述
    在这里插入图片描述
    通过三个命令的输出我们可以看出三者的区别在于包函的maven生命的阶段和执行目标(goal)不同。

    maven生命周期(lifecycle)由各个阶段组成,每个阶段由maven的插件plugin来执行完成。生命周期(lifecycle)主要包括clean、resources、complie、install、pacakge、testResources、testCompile、deploy等,其中带test开头的都是用业编译测试代码或运行单元测试用例的。

    仔细查看上面的输出结果截图,可以发现,

    • mvn clean
      package依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)等7个阶段。
    • mvn clean
      install依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)、install等8个阶段。
    • mvn clean
      deploy依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)、install、deploy等9个阶段。

    由上面的分析可知主要区别如下:

    • package命令完成了项目编译、单元测试、打包功能,但没有把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库和远程maven私服仓库
    • install命令完成了项目编译、单元测试、打包功能,同时把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库,但没有布署到远程maven私服仓库
    • deploy命令完成了项目编译、单元测试、打包功能,同时把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库和远程maven私服仓库
  • 相关阅读:
    Oracle数据库之审计(五)
    从0搭建夜莺v6基础监控告警系统(三):告警对接企业微信
    HOSMEL:一种面向中文的可热插拔模块化实体链接工具包
    TMS FixInsight代码评估工具
    详解配置代理和IP设置的含义
    python 自建kafka消息生成和消费小工具
    SSM网约车管理系统毕业设计-附源码051630
    Git项目管理快速入门,轻松易上手
    Qt 简约又简单的加载动画 第七季 音量柱风格
    用Python舞动数据的魔力:探索数据分析的艺术之路
  • 原文地址:https://blog.csdn.net/Koikoi12/article/details/126010758