文章目录
一、Could not find artifact com.xxx:xxx-boot-parent:pom:0.0.1-SNAPSHOT and …
创建父工程要先执行maven
的install
命令,将父工程的pom
文件放入仓库中,使得子模块可以引用。
二、maven生命周期
maven 通过生命周期来定义项目的构建顺序,包括是3个生命周期。
(一)clean
(清理)
删除target
目录下的编译内容以及本地仓库中打包好的文件(即上一个构建产生的文件)
pre-clean
:
清理前的准备工作clean
:
清理项目post-clean
:
清理后的善后工作
(二)default
(构建)
maven 最主要的生命周期,包括项目的编译、测试、打包、安装部署等等。
validate
:
验证项目资源是否可用initialize
:
初始化,设置属性,创建目录generate-sources
:
使用插件创建额外的源代码,如使用lombok穿件POJO类的set/get方法process-source
:
处理资源代码,即对源代码中的值进行替换generate-resources
:
生成资源文件,如配置文件,插件自动生成的xml文件process-resource
:
处理资源文件,对值进行替换,为打包做一些准备compile
:
编译,把源代码编译为.class文件process-classes
:
处理编译文件,使用插件对.class文件进行处理,如字节码的增强处理generate-test-sources
:
生成测试源代码process-test-source
:
处理测试源代码,如替换值generate-test-resources
:
生成测试资源文件process-test-resource
:
处理资源文件compile
:
编译测试源代码process-classes
:
处理测试编译文件test
:
单元测试,使用单元测试的框架来进行单元测试,此过程测试代码只是在运行,不会打包,也不会部署到服务器。prepare-package
:
打包前的预备工作,如解压,处理包的版本package
:
打包,根据pom文件中的定义,生成jar包或war包pre-integration-test
:
集成测试之前的预处理工作,包括建立相应的环境等integration-test
:
将jar宝部署到服务器,在测试环境下进行集成测试post-integration-test
:
集成测试之后的环境清理工作verify
:
对集成测试的结果进行检查,是否达标install
:
把打包的项目部署到本地的Maven仓库(.m2)deploy
:
把jar包部署到远端仓库中
(三)site
(站点)
生成项目的报告文件,如测试报告、API 文档,发布到web服务器上。
pre-site
:
生成项目文档之前的处理工作site
:
生成项目文档post-site
:
生成项目文档之后的处理工作site-deploy
:
将生成的项目发布到指定的web服务器
(四)总结
对于Maven的三个生命周期相互之间是相互独立的,而在执行某生命周期中的某一个阶段时,会执行该生命周期中位于此阶段之前的所有阶段。
Maven生命周期的每个阶段都与插件进行了绑定,执行Maven生命周期的每个阶段就是执行该阶段的插件功能。