[Maven]关于Maven的生命周期与命令
关于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的生命周期与命令的更多相关文章
- 笔记:Maven 生命周期与命令行详解
Maven 拥有三套相互独立的生命周期,分别是 clean.default和site,clean 生命周期的目的是清理项目,default 生命周期的目的是构建项目,而site生命周期的目的是建立项目 ...
- maven详解之生命周期与插件
Maven是一个优秀的项目管理工具,它能够帮你管理编译.报告.文档等. Maven的生命周期: maven的生命周期是抽象的,它本身并不做任何的工作.实际的工作都交由"插件"来完成 ...
- Maven 的插件和生命周期的绑定
一.Maven 的生命周期 Maven 的生命周期是对所有的构建过程进行抽象和统一.Maven 的生命周期是抽象的,这意味着生命周期本身不做任何实际的工作,生命周期只是定义了一系列的阶段,并确定这些阶 ...
- maven的仓库、生命周期与插件
一.仓库 统一存储所有Maven项目共享的构建的位置就是仓库. 仓库分为本地仓库和远程仓库.远程仓库又分为中央仓库(中央仓库是Maven核心自带的远程仓库),伺服(另一种特殊的远程仓库,为节省宽带和时 ...
- maven的核心概念——生命周期
第十一章生命周期 11.1 什么是Maven的生命周期 ●Maven生命周期定义了各个构建环节的执行顺序,有了这个清单,Maven就可以自动化的执行构建命令了. ●Maven有三套相互独立的生命周期, ...
- maven依赖管理,生命周期,插件
依赖配置 依赖指当前项目运行所需的jar,一个项目可以设置多个依赖,在pom.xml中格式如下 <!--设置当前项目所依赖的所有jar--> <dependencies> &l ...
- maven第7章生命周期和插件
maven插件用到哪些思想? 7.7 从命令行调用插件 目标前缀和插件前缀是一个意思. 在本地搭建maven环境,熟悉maven的环境.
- maven build的常用生命周期
常用的maven build goals: validate - validate the project is correct and all necessary information is av ...
- Maven入门 项目的生命周期&pom.xml配置&仓库
- Docker 容器生命周期管理命令
docker run 命令 -d: 后台运行容器,并返回容器ID: -i: 以交互模式运行容器,通常与 -t 同时使用: -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用: --name= ...
随机推荐
- Servlet系列:(HttpServletRequest、HttpServletResponse、ServletContext、ServletConfig)详解
HttpServletRequest HttpServletRequest 对象:主要作用是用来接收客户端发送过来的请求信息,例如:请求的参数,发送的头信息等都属于客户端发来的信息,service() ...
- Linux: CPU C-states
0. Overview There are various power modes of the CPU which are determined based on their current usa ...
- Java循环标签
大家是否见过这种for循环,在for循环前加了个标记的: outerLoop: for (; ; ) { for (; ; ) { break outerLoop; } } 我之前有一次在公司业务代码 ...
- ReentrantLock 可重入锁总结
本文为博主原创,未经允许不得转载: ReentrantLock 是一种内置锁,也叫可重入锁(ReentrantLock),它允许线程再次获取已持有的同步锁,这样防止死锁的发生.在使用Reentrant ...
- 分享这位大神的WPF界面设计系列视频
本文结构: 前言 视频详情 搬运详情 总结 4.1 国内推荐WPF资源 4.2 B站是学习的天堂 4.3 去外面看看 4.4 个人给C/S同学建议 1. 前言 今天介绍油管上一个大佬发的WPF设计系列 ...
- mysql-字符函数-拼接-长度-切片-替换
- [转帖]如何修改Bash Shell的提示符的格式和配色
https://zhuanlan.zhihu.com/p/348416919 我们大多数使用的shell提示符,显示用户名.主机名和当前所在目录.在本文将会介绍如何定制一个自己喜欢的Bash. 了解B ...
- [转帖]tidb-系统内核调优及对比
一.背景 验证系统调优对性能的影响,用sysbench做了一些简单的测试,具体调整方法可见官方文档 二.特殊说明 1.透明大页查看 # 查看透明大页是否开启,[]在always处表示开启,[]在nev ...
- 【转帖】关于网卡特性TSO、UFO、GSO、LRO、GRO
https://www.cnblogs.com/larrypeng/p/12496810.html 我们来看下关于网卡特性的解释,不过记住GSO和GRO两个特性就好. TSO(TCP Segmenta ...
- 给无网络的CentOS服务器下载rpm包的一个解决办法
很多公司的服务器为了安全都在内网, 是无法直接连接互联网的, 无法连接互联网就无法使用yum等的包管理器安装rpm包等. 有时候一些rpm包还是能很好的提高性能的, 所以可以使用多种方式获取rpm包进 ...