您的位置:首页 > 其它

maven教程(二)构建生命周期

2013-07-20 23:44 323 查看
1.清理生命周期 (clean)

第一个你将感兴趣的生命周期是Maven中最简单的生命周期。运行mvn clean将调用清理生命周期,它包含了三个生命周期阶段:

• pre-clean

• clean

• post-clean

2.默认生命周期 (default)

生命周期阶段描述
validate验证项目是否正确,以及所有为了完整构建必要的信息是否可用
generate-sources生成所有需要包含在编译过程中的源代码
process-sources处理源代码,比如过滤一些值
generate-resources生成所有需要包含在打包过程中的资源文件
process-resources复制并处理资源文件至目标目录,准备打包
compile编译项目的源代码
process-classes后处理编译生成的文件,例如对Java类进行字节码增强(bytecode enhancement)
generate-test-sources生成所有包含在测试编译过程中的测试源码
process-test-sources处理测试源码,比如过滤一些值
generate-test-resources生成测试需要的资源文件
process-test-resources复制并处理测试资源文件至测试目标目录
test-compile编译测试源码至测试目标目录
test使用合适的单元测试框架运行测试。这些测试应该不需要代码被打包或发布
prepare-package在真正的打包之前,执行一些准备打包必要的操作。这通常会产生一个包的展开的处理过的版本(将会在Maven 2.1+中实现)
package将编译好的代码打包成可分发的格式,如JAR,WAR,或者EAR
pre-integration-test执行一些在集成测试运行之前需要的动作。如建立集成测试需要的环境
integration-test如果有必要的话,处理包并发布至集成测试可以运行的环境
post-integration-test执行一些在集成测试运行之后需要的动作。如清理集成测试环境。
verify执行所有检查,验证包是有效的,符合质量规范
install安装包至本地仓库,以备本地的其它项目作为依赖使用
deploy复制最终的包至远程仓库,共享给其它开发人员和项目(通常和一次正式的发布相关)
3.站点生命周期 (site)

Maven不仅仅能从一个项目构建软件构件,它还能为一个或者一组项目生成项目文档和报告。项目文档和站点生成有一个专有的生命周期,它包含了四个阶段:

1. pre-site

2. site

3. post-site

4. site-deploy

默认绑定到站点生命周期的目标是:

1. site - site:site

2. site-deploy -site:deploy

运行如下命令从一个Maven项目生成一个站点:

$ mvn site

4.打包相关生命周期
4.1 JAR

JAR是默认的打包类型,是最常用的,因此也就是生命周期配置中最经常遇到的打包类型。JAR生命周期默认的目标如下表 所示:

生命周期阶段目标
process-resourcesresources:resources
compilecompiler:compile
process-test-resourcesresources:testResources
test-compilecompiler:testCompile
testsurefire:test
packagejar:jar
installinstall:install
deploydeploy:deploy
  
4.2pom

POM是最简单的打包类型。不像一个JAR,SAR,或者EAR,它生成的构件只是它本身。没有代码需要测试或者编译,也没有资源需要处理。打包类型为POM的项目的默认目标如表 10.3 “POM打包默认的目标”所示:

生命周期阶段目标
packagesite:attach-descriptor
installinstall:install
deploydeploy:deploy
4.3WAR

WAR打包类型和JAR以及EJB类似。例外是这里的package目标是war:war。注意war:war插件需要一个web.xml配置文件在项目的src/main/webapp/WEB-INF目录中。打包类型为WAR的项目的默认目标如表  “WAR打包默认的目标”所示。

WAR打包默认的目标

生命周期阶段 目标
process-resourcesresources:resources  处理资源并将资源复制到输出目录
compilecompiler:compile  编译所有的源码并复制到构建输出目录
process-test-resourcesresources:testResources
test-compilecompiler:testCompile
testsurefire:test 寻找测试源码目录下所有以*Test结尾的类,以JUnit2测试的形式运行它们
packagewar:war
installinstall:install   将项目的主要构件安装到本地仓库
deploydeploy:deploy  用来将一个构件部署到远程Maven仓库,当你执行一次发布的时候通常需要更新远程仓
4.4 EAR

     EAR可能是最简单的Java EE结构体,它主要包含一个部署描述符application.xml文件,一些资源和一些模块。EAR插件有个名为generate-application-xml的目标,它根据

EAR项目POM的配置生成application.xml。打包类型为EAR的项目的默认目标如表 “EAR打包默认的目标”所示。

  EAR打包默认的目标

生命周期阶段 目标
generate-resourcesear:generate-application-xml
process-resourcesresources:resources
packageear:ear
installinstall:install
deploydeploy:deploy
以上列出了常用的几个打包的生命周期。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: