之前遇到Maven的bug时,由于对Maven生命周期的不熟悉,所以导致迟迟没有解决bug
现在整理一下我对Maven周期的一些总结等,
maven的default生命周期所有流程:
validate
initailize
generate-sources
process-sources
generate-resource
process-resource
compile
process-classes
generate-test-sources
process-test-sources
generate-test-resources
test-compile
process-test-classed
test
prepare-package
package
pre-integreation-test、post-integreation-test 集成测试环节
verify
install
deploy
Maven主要的生命周期分为三部分:clean,default, site
一、Clean (清理周期)
pre-clean / clean /post-clean 有三个阶段。
二、default (构建周期)
也是重点研究的阶段。
process-sources
compile 编译主代码至输出目录
process-class 将代码中的java文件编译成为class文件
process-test 处理maven中的test代码
test-compile 编译test代码到输出目录
test 测试。。。但不会被打包或者部署!
package 打包
install 将打好的包安装到本地仓储,供其他maven项目使用,!!重点:也就是说这个时候你的maven仓库里面的项目jar已经更新成为新的打包的Jar(需要重点注意maven仓库的jar的更新时间-就是这个环节使得我们迟迟找不出为什么会有bug,是因为我们一直没有install,导致maven仓库的代码一直没有更新,使用当然会出bug..),别的项目使用的maven仓库的jar是你更新的jar.
deploy 将项目输出的部件安装到本地仓库。
三、site (建立项目站点)
pre-site / site / post-site / site-deploy四个阶段。
maven常用的几个命令
$mvn clean 执行pre-clean 与clean
$mvn test 执行default生命周期从validate到test的所有阶段
$mvn clean install 执行clean周期的clean阶段和default的install阶段(执行pre-clean\clean以及从validate到install的所有)
compile package 编译打包
clean package -Dmaven.test.skip=true 清除后打包除开test的代码
---备注
打包后的war包中的lib文件是又pom文件在package时maven根据pom的配置从本地仓库复制到相应的Jar文件中
pom中scope标签就是依赖范围的配置,默认是compile,可选配置有test、provided、runtime、system、import
!!依赖范围时provide的不会打包到war包中,如果有依赖于web容器中包含的相同,会导致冲突问题