关于Maven的生命周期与命令

工作的时候对Maven的install和package的使用产生了一些疑问,干脆将Maven的整个生命周期都复习总结一遍。

先看下在IDEA中Maven的生命周期节点:

clean

clean是清理命令,相当于执行了 mvn clean 命令。

清理当前工程编译后生成的文件,也就是删除整个target目录。

validate

相当于执行了 mvn validate 命令,对工程进行基础验证,如工程结构、pom、资源文件等是否正确,比如验证项目的目录结构是否规范,是否抱哈诺徐的源代码和资源文件等。

这一阶段的目的是为了确保项目的基础设置和配置是正确的,以便能够顺利执行后续的编译、测试、打包等构建任务。

compile

相当于执行了 mvn compile 编译命令, 作用是对项目中的源代码进行编译,把 src/main/java 目录下的java文件变异成.class文件,并把编译生成的.class文件放到target/classes目录下。

test

mvn test 命令,编译并执行了 src/test/java/目录下的所有测试用例。通常意味着使用了 @Test 注解标记的方法,以验证代码的正确性和稳定性。

package

将当前的项目打包,根据pom中的标签来判断打成什么类型的包。

项目打包指的是将项目的源代码、配置文件和依赖库等资源整合为一个可执行的文件或归档文件。打包完成的文件通常会被放置在target目录下,方便本地部署和项目运行。

verify

验证工程所有代码、配置进行是否正确,以及类中代码的语法检测等。

因为经过了编译打包,可能中间会出错,所以再检查一遍。

install

将当前的项目工程打包,并安装到本地仓库,以便其他人可以通过引入该项目的信息,也就是在pom中使用 dependency 标签来使用该项目。

install与package的区别在于,install会将项目打包好,再安装加入到本地仓库,而package只会将项目打包,在target文件夹下生成可执行文件,之后不会做其他操作

site

指的是生成项目的站点文档,其中包括项目概述、源码测试覆盖率报告、开发者列表等信息。不过站点文档的生成需要进行一些额外的配置和操作。

deploy

这个命令是将当前工程对应的包或者构建出来的产物上传到远程仓库中去,以便他人可以从该仓库获取并使用这些包。远程仓库可以是公共的残酷,比如说Maven中央仓库,也可以是私有的仓库,比如企业内部搭建的私服。

放一个生命周期示意图:

[Maven]关于Maven的生命周期与命令的更多相关文章

  1. 笔记:Maven 生命周期与命令行详解

    Maven 拥有三套相互独立的生命周期,分别是 clean.default和site,clean 生命周期的目的是清理项目,default 生命周期的目的是构建项目,而site生命周期的目的是建立项目 ...

  2. maven详解之生命周期与插件

    Maven是一个优秀的项目管理工具,它能够帮你管理编译.报告.文档等. Maven的生命周期: maven的生命周期是抽象的,它本身并不做任何的工作.实际的工作都交由"插件"来完成 ...

  3. Maven 的插件和生命周期的绑定

    一.Maven 的生命周期 Maven 的生命周期是对所有的构建过程进行抽象和统一.Maven 的生命周期是抽象的,这意味着生命周期本身不做任何实际的工作,生命周期只是定义了一系列的阶段,并确定这些阶 ...

  4. maven的仓库、生命周期与插件

    一.仓库 统一存储所有Maven项目共享的构建的位置就是仓库. 仓库分为本地仓库和远程仓库.远程仓库又分为中央仓库(中央仓库是Maven核心自带的远程仓库),伺服(另一种特殊的远程仓库,为节省宽带和时 ...

  5. maven的核心概念——生命周期

    第十一章生命周期 11.1 什么是Maven的生命周期 ●Maven生命周期定义了各个构建环节的执行顺序,有了这个清单,Maven就可以自动化的执行构建命令了. ●Maven有三套相互独立的生命周期, ...

  6. maven依赖管理,生命周期,插件

    依赖配置 依赖指当前项目运行所需的jar,一个项目可以设置多个依赖,在pom.xml中格式如下 <!--设置当前项目所依赖的所有jar--> <dependencies> &l ...

  7. maven第7章生命周期和插件

    maven插件用到哪些思想? 7.7 从命令行调用插件 目标前缀和插件前缀是一个意思. 在本地搭建maven环境,熟悉maven的环境.

  8. maven build的常用生命周期

    常用的maven build goals: validate - validate the project is correct and all necessary information is av ...

  9. Maven入门 项目的生命周期&pom.xml配置&仓库

  10. Docker 容器生命周期管理命令

    docker run 命令 -d: 后台运行容器,并返回容器ID: -i: 以交互模式运行容器,通常与 -t 同时使用: -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用: --name= ...

随机推荐

  1. 机器学习-决策树系列-决策树-剪枝-CART算法-27

    目录 1. 剪枝 2. CCP-代价复杂度剪枝(CART) 4. α值的确定 1. 剪枝 将子树还原成一个叶子节点: 是解决过拟合的一个有效方法.当树训练得过于茂盛的时候会出现在测试集上的效果比训练集 ...

  2. 小白学标准库之反射 reflect

    1. 反射简介 反射是 元编程 概念下的一种形式,它在运行时操作不同类型的对象,检查对象的类型,大小等信息,对于没有源代码的包反射尤其有用. 设想一个场景,读取一个包中变量 a 的类型,并打印该类型的 ...

  3. Dubbo入门1:Spirngboot+Dubbo2.6.0整合

    整合springboot+dubbo2.6.0 demo 本文简要说明了springboot和dubbo整合的配置文件的写法 目录结构 整体目录 如下图所示:整体项目是一个父子工程,common作为一 ...

  4. Java开发者的Python进修指南:JSON利器之官方json库、demjson和orjson的实用指南

    JSON JSON作为目前最流行的传输格式,在Python中也有相应的实现方式.由于JSON格式的文本可以跨平台并且简单易用,因此被广泛传播.因此,我们今天的主要讨论内容是如何熟练地应用Python的 ...

  5. EasyNetQ(RabbitMQ)在处理消息时,如果抛出异常,继续不断发送到订阅队列,不断处理(也就是不自动确认消息已到达)

    默认情况下,EasyNetQ的消息处理过程中,如果throw exception,那么,依然是认为消息已经送达,不会再次推送,为了让RabbitMQ再次推送,可以这么实现: public sealed ...

  6. 【面试题精讲】说一说springboot加载配置文件优先级

    有的时候博客内容会有变动,首发博客是最新的,其他博客地址可能会未同步,认准https://blog.zysicyj.top 首发博客地址 文章更新计划 系列文章地址 Spring Boot 加载配置文 ...

  7. [转帖]tiup cluster restart

    https://docs.pingcap.com/zh/tidb/stable/tiup-component-cluster-restart   注意 重启过程中会有一段时间服务不可用. 语法 tiu ...

  8. [转帖]s3fs把 s3-like 对象存储挂载到本地

    s3fs把 s3-like 对象存储挂载到本地 s3fs把 s3-like 对象存储挂载到本地 s3fs-fuse 是一个采用 c++ 开发的开源应用,它的作用是可以将 AWS S3 以及兼容 S3 ...

  9. [转帖]ubuntu开启sar记录日志

    https://www.cnblogs.com/ishmaelwanglin/p/16955227.html 背景 之前一直用CentOS系统,最近换到了ubuntu的,sar日志对分析系统状态和基本 ...

  10. 【转帖】15.JVM栈帧的内部结构

    目录 1.栈中存储的是什么? 2.栈的运行原理 1.栈中存储的是什么? 1.每个线程都有自己的栈,栈中存储的是栈帧. 2.在这个线程上正在执行的每个方法都各自对应一个栈帧.方法与栈帧是一对一的关系. ...