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

来源:互联网 发布:热血警探知乎 编辑:程序博客网 时间:2024/04/19 21:52

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,或者EARpre-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:resourcescompilecompiler:compileprocess-test-resourcesresources:testResourcestest-compilecompiler:testCompiletestsurefire:testpackagejar:jarinstallinstall:installdeploydeploy:deploy  

4.2pom

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

生命周期阶段目标packagesite:attach-descriptorinstallinstall:installdeploydeploy: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:testResourcestest-compilecompiler:testCompiletestsurefire:test 寻找测试源码目录下所有以*Test结尾的类,以JUnit2测试的形式运行它们packagewar:warinstallinstall: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-xmlprocess-resourcesresources:resourcespackageear:earinstallinstall:installdeploydeploy:deploy

以上列出了常用的几个打包的生命周期。

原创粉丝点击