• MAVEN——PACKAGE、INSTALL、DEPLOY的联系与区别


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

    MVN CLEAN PACKAGE

    è¿éåå¾çæè¿°

    è¿éåå¾çæè¿°

    MVN CLEAN INSTALL

    è¿éåå¾çæè¿°

    è¿éåå¾çæè¿°

    MVN CLEAN DEPLOY(忽略最后的BUILD FAILURE)

    è¿éåå¾çæè¿°

    è¿éåå¾çæè¿°

    通过三个命令的输出我们可以看出三者的区别在于包函的maven生命的阶段和执行目标(goal)不同。在我的上一篇文章https://blog.csdn.net/zhaojianting/article/details/80321488 中介绍了maven的生命周期和各种插件,不明白的请参考此博文。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私服仓库

    在TARGET 目录下可找到 JAR包

    å¨è¿éæå¥å¾çæè¿°

    注: 此方式打出来的是没有加入依赖包的

    maven要打依赖包,需要添加插件

     
    
    1. <build>
    2. <plugins>
    3. <plugin>
    4. <artifactId>maven-assembly-plugin</artifactId>
    5. <configuration>
    6. <archive>
    7. <manifest>
    8. <!--main主类的全类名-->
    9. <mainClass>main.Class</mainClass>
    10. </manifest>
    11. </archive>
    12. <descriptorRefs>
    13. <descriptorRef>jar-with-dependencies</descriptorRef>
    14. </descriptorRefs>
    15. </configuration>
    16. <executions>
    17. <execution>
    18. <id>make-assembly</id>
    19. <!--指定在打包节点执行jar包合并操作, 使用package就可以打出全量包-->
    20. <phase>package</phase>
    21. <goals>
    22. <goal>single</goal>
    23. </goals>
    24. </execution>
    25. </executions>
    26. </plugin>
    27. </plugins>
    28. </build>

    å¨è¿éæå¥å¾çæè¿°

  • 相关阅读:
    一些流程图(自用)
    老年生活照护实训室:让养老护理变得更简单
    李宏毅2023机器学习作业HW05解析和代码分享
    Python的基础语法(十三)
    (218)Verilog HDL:实现简单 FSM2(异步复位)
    羊城杯2022 部分web
    VM安装Windows虚拟机
    集成学习(随机森林)
    Spring:AOP事务管理(14)
    2022年6月总结
  • 原文地址:https://blog.csdn.net/wwh1st/article/details/134537570