基本命令

Maven生命周期
Maven的生命周期是对所有的构建过程进行抽象和统一。Maven的生命周期是抽象的,这意味着生命周期本身不做任何实际的工作,生命周期只是定义了一系列的阶段,并确定这些阶段的执行顺序。而在执行这些阶段时,实际的工作还是由插件来完成的。这种思想与设计模式中的模板模式非常相似。
3个相互独立的生命周期
Maven有三套相互独立的生命周期:
- Clean
clean生命周期的目的是清理项目 - Default
default生命周期的目的是构建项目 - site
site生命周期的目的是建立项目站点。
| 生命周期 | clean | default | site |
|---|---|---|---|
| 阶段(phase),执行顺序由上至下 | pre-clean | validate | pre-site |
| clean | initialize | site | |
| post-clean | generate-sources | post-site | |
| process-sources | site-deploy | ||
| generate-resources | |||
| process-resources | |||
| compile | |||
| process-classes | |||
| generate-test-sources | |||
| process-test-sources | |||
| generate-test-resources | |||
| process-test-resources | |||
| test-compile | |||
| process-test-classes | |||
| test | |||
| prepare-package | |||
| package | |||
| pre-integration-test | |||
| integration-test | |||
| post-integration-test | |||
| verify | |||
| install | |||
| deploy |
例如执行mvn clean,会从上到下依次执行pre-clean和clean
假设maven项目目录结构是这样的

mvn compile
编译命令,执行过后会生成对应的target目录

target中包含了maven插件和编译之后生成的class文件

mvn clean
清除target包的内容


mvn package
打包命令,本质上=mvn compile + mvn test + mvn package(看生命周期可以得出这个结论)
打包之后的target内容比较复杂

相比于compile,主要多了jar包,test包下的类class文件,说明确实执行了mvn test
mvn install
mvn package+把包放入本地maven仓库
我们先把本地maven仓库的jar包删除


然后执行mvn clean install

target与package没区别

但是本地maven仓库出现了jar包!













![【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 连续区间和(100分) - 三语言AC题解(Python/Java/Cpp)](https://img-blog.csdnimg.cn/direct/f43e4bb92910485c9700ed4b005c9d5b.png)






