Maven-构建生命周期
source link: https://www.techstack.tech/post/Maven-%E6%9E%84%E5%BB%BA%E7%94%9F%E5%91%BD%E5%91%A8%E6%9C%9F/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
Maven 构建生命周期定义了一个项目构建跟发布的过程。我们在开发项目的时候,不断地在编译、测试、打包、部署等过程,maven的生命周期就是对所有构建过程抽象与统一,生命周期包含项目的清理、初始化、编译、测试、打包、集成测试、验证、部署、站点生成等几乎所有的过程。
Maven 有以下三个标准的生命周期:
- clean:项目清理的处理
- default(或 build):项目部署的处理
- site:项目站点文档创建的处理
构建阶段由插件目标构成
一个插件目标代表一个特定的任务(比构建阶段更为精细),这有助于项目的构建和管理。这些目标可能被绑定到多个阶段或者无绑定。不绑定到任何构建阶段的目标可以在构建生命周期之外通过直接调用执行。这些目标的执行顺序取决于调用目标和构建阶段的顺序。
例如下面的命令:
clean
和 pakage
是构建阶段,dependency:copy-dependencies
是目标
mvn clean dependency:copy-dependencies package
这里的 clean
阶段将会被首先执行,然后 dependency:copy-dependencies
目标会被执行,最终 package
阶段被执行。
Clean 生命周期
- pre-clean:执行一些需要在clean之前完成的工作
- clean:移除所有上一次构建生成的文件
- post-clean:执行一些需要在clean之后立刻完成的工作
mvn clean
中的 clean
就是上面的 clean
,在一个生命周期中,运行某个阶段的时候,它之前的所有阶段都会被运行,也就是说,mvn clean
等同于mvn pre-clean clean
,如果我们运行mvn post-clean
,那么 pre-clean
,clean
都会被运行。
Default (Build) 生命周期
有一些与 Maven 生命周期相关的重要概念需要说明:
当一个阶段通过 Maven 命令调用时,例如mvn compile
,只有该阶段之前以及包括该阶段在内的所有阶段会被执行。
不同的 maven 目标将根据打包的类型(JAR / WAR / EAR
),被绑定到不同的 Maven 生命周期阶段。
Site 生命周期
这里经常用到的是site阶段和site-deploy阶段,用以生成和发布Maven站点,这可是Maven相当强大的功能。
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK