Maven 命令与生命周期
本文最后更新于:2024年9月8日 晚上
Maven 命令与生命周期
命令
clean
- 清理项目生产的临时文件,一般是模块下的target目录。
compile
- 编译源代码,一般编译模块下的src/main/java目录。
test
- 测试命令,会执行src/test/java/下junit的测试用例。
package
- 项目打包工具,会在模块下的target目录生成jar或war等文件。
install
- 将打包的jar/war文件复制到你的本地仓库中,供其他模块使用。
deploy
- 将打包的文件发布到远程参考,提供其他人员进行下载依赖。
site
dependency
archetype
tomcat
命令参数
- -h,–help:Display help information
- -am,–also-make:构建指定模块,同时构建指定模块依赖的其他模块。
- -amd,–also-make-dependents:构建指定模块,同时构建依赖于指定模块的其他模块。
- -B,–batch-mode:以批处理(batch)模式运行。
- -C,–strict-checksums:检查不通过,则构建失败;(严格检查)
- -c,–lax-checksums:检查不通过,则警告;(宽松检查)
- -D,–define :Define a system property
- -e,–errors:显示详细错误信息。
- -emp,–encrypt-master-password :Encrypt master security password
- -ep,–encrypt-password :Encrypt server password
- -f,–file :使用指定的POM文件替换当前POM文件。
- -fae,–fail-at-end:最后失败模式:Maven会在构建最后失败(停止),如果Maven refactor中一个失败了,Maven会继续构建其它项目,并在构建最后报告失败。
- -ff,–fail-fast:最快失败模式:多模块构建时,遇到第一个失败的构建时停止。
- -fn,–fail-never:从不失败模式:Maven从来不会为一个失败停止,也不会报告失败。
- -gs,–global-settings :替换全局级别settings.xml文件(Alternate path for the global settings file)
- -l,–log-file :指定输出日志文件。
- -N,–non-recursive:仅构建当前模块,而不构建子模块(即关闭Reactor功能)
- -nsu,–no-snapshot-updates:强制不更新SNAPSHOT(Suppress SNAPSHOT updates)
- -U,–update-snapshots:强制更新releases,snapshots类型的插件或依赖库(否则maven一天只会更新一次snapshot依赖)
- -o,–offline:运行offline模式,不联网进行依赖更新。
- -P,–activate-profiles :激活指定的profile文件列表(用逗号[,]隔开)
- -pl,–projects ":手动选择需要构建的项目,项目间以逗号分隔;A project can be specified by [groupId]:artifactId or by its relative path.
- -q,–quiet:安静模式,只输出ERROR
- -rf,–resume-from :从指定的项目(或模块)开始继续构建。
- -s,–settings :替换用户级别settings.xml文件(Alternate path for the user settings file)
- -T,–threads :Thread count, for instance 2.0C where C is core multiplied
- -t,–toolchains :Alternate path for the user toolchains file
- -V,–show-version:Display version information WITHOUT stopping build
- -v,–version:Display version information
- -X,–debug:输出详细信息,debug模式。
生命周期
Maven的生命周期
- Maven有三套生命周期,分别是clean,default,site,每个生命周期都包含了一些阶段(phase)
- 三套生命周期相互独立,但各个生命周期中的phase却是有顺序的,且后面的phase依赖于前面的phase,执行某个phase时,其前面的phase会依顺序执行,但不会触发另外两套生命周期中的任何phase
- clean的生命周期
- pre-clean:执行清理前的工作。
- clean:清理上一次构建生成的所有文件。
- post-clean:执行清理后的工作。
- default的生命周期:default生命周期是最核心的,它包含了构建项目时真正需要执行的所有步骤。
- validate
- initialize
- generate-sources
- process-sources
- generate-resources
- process-resources:复制和处理资源文件到target目录,准备打包。
- compile:编译项目的源代码。
- process-classes
- generate-test-sources
- process-test-sources
- generate-test-resources
- process-test-resources
- test-compile:编译测试源代码。
- process-test-classes
- test:运行测试代码。
- prepare-package
- package:打包成jar或者war或者其他格式的分发包。
- pre-integration-test
- integration-test
- post-integration-test
- verify
- install:将打好的包安装到本地仓库,供其他项目使用。
- deploy:将打好的包安装到远程仓库,供其他项目使用。
- site的生命周期
- pre-site
- site:生成项目的站点文档。
- post-site
- site-deploy:发布生成的站点文档。