Chapter 10. 构建生命周期
10.1.1. 清理生命周期 (clean)
运行mvn clean将调用清理生命周期,它包含了三个生命周期阶段:
post-clean
在每个生命周期阶段,你如果需要执行自己的任务或者通知可以使用插件maven-antrun-plugin
你也可以通过插件配置,改变原有生命周期阶段的任务例如
Example 10.2. 自定义Clean插件的行为
<project>
<modelVersion>4.0.0</modelVersion>
...
<build>
<plugins>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<configuration>
<filesets>
<fileset>
<directory>target-other</directory>
<includes>
<include>*.class</include>
</includes>
</fileset>
</filesets>
</configuration>
</plugin>
</plugins>
</build>
</project>
生命周期阶段
描述
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 |
复制最终的包至远程仓库,共享给其它开发人员和项目(通常和一次正式的发布相关)
|
Maven不仅仅能从一个项目构建软件构件,它还能为一个或者一组项目生成项目文档和报告。项目文档和站点生成有一个专有的生命周期,它包含了四个阶段:
-
pre-site
-
site
-
post-site
-
site-deploy
mvn site
10.2. 打包相关生命周期
绑定到每个阶段的特定目标默认根据项目的打包类型设置。一个打包类型为jar
的项目和一个打包类型为war
的项目拥有不同的两组默认目标。
常用的打包类型,jar,pom,manven-plugin,EJB,WAR,EAR.也可以使用插件支持其他项目的打包,例如swf
10.3. 通用生命周期目标
Chapter 11. 构建Profile
Profile能让你为一个特殊的环境自定义一个特殊的构建;profile使得不同环境间构建的可移植性成为可能。
构建可移植性!!!!!!!!!
一个构建的“可移植性”是指将一个项目在不同的环境中构建的难易度。
11.1.1.2. 环境可移植性!!!!
一个profile 几乎可以覆盖项目模型的所有内容
<project>
<profiles>
<profile>
<build>
<defaultGoal>...</defaultGoal>
<finalName>...</finalName>
<resources>...</resources>
<testResources>...</testResources>
<plugins>...</plugins>
</build>
<reporting>...</reporting>
<modules>...</modules>
<dependencies>...</dependencies>
<dependencyManagement>...</dependencyManagement>
<distributionManagement>...</distributionManagement>
<repositories>...</repositories>
<pluginRepositories>...</pluginRepositories>
<properties>...</properties>
</profile>
</profiles>
</project>
分享到:
相关推荐
2: Maven目录分析: 2.1: bin: 含有mvn运行的脚本 2.2: boot:含有plexus-classworlds类加载器框架 2.3: conf:含有settings.xml配置文件针对所有用户都有效果, ~/.m2/setting.xml对于单个用户的 3.3: ...
maven学习笔记maven学习笔记maven学习笔记
Maven笔记.pdf
Maven的好处 节省空间 对jar包做了统一管理 依赖管理 一键构建:tomcat:run可以脱离开发工具 可跨平台 应用在大型项目可提高开发效率(模块开发)
他是apache下的一个开源项目,是纯java开发,并且只是用来管理java项目的。
doc文档
详细介绍了maven的相关知识,资料包里包含maven的word版的笔记和教案
maven笔记.zip
Maven笔记.doc
java-Maven笔记.docx
Maven 教程:基础篇——尚硅谷学习笔记 2022年
尚硅谷Maven视频课程里的记录,包括课件、代码、笔记、以及关于Maven的依赖资源
Maven3实战笔记06——聚合的介绍。
Maven笔记总结!!
最新maven视频教程加源码笔记,内容完整有保证,是学习maven的不可多得的教程。
配套视频:https://www.bilibili.com/video/BV1kf4y147Q4
9_Maven笔记.pdf
maven学习笔记,里面有maven的学习路线图,以及maven的核心知识
maven简介、maven安装使用、maven命令使用的详细说明(图文教程) maven简介、maven安装使用、maven命令使用的详细说明(图文教程) maven简介、maven安装使用、maven命令使用的详细说明(图文教程) maven简介、maven安装...