生命周期和插件是maven的两个核心概念。在maven日常使用中,命令行的输入往往就对应了生命周期。如mvn package就表示执行默认生命周期阶段package。maven生命周期是抽象的,其实际行为都是有插件完成的,package阶段的任务会由maven-jar-plugin完成。
1 生命周期
maven对项目构建的生命周期进行抽象和统一,总结出项目的清理、初始化、编译、测试、打包、集成测试、验证、部署、站点生成等构建步骤。各构建步骤的具体实现由插件来完成,每一个构建过程绑定一个或多个插件行为,maven为大多数构建过程绑定了默认插件。用户也可根据需要配置或编写自定义插件。
maven有三套独立的生命周期,分别为clean、default、site。
1.1 clean生命周期
clean生命周期的目的是清理项目,包含三个阶段:
1)pre-clean:执行一些清理前需要完成的工作
2)clean: 清理上一次构建生成的文件
3)post-clean:执行一些清理后需要完成的工作
1.2 default生命周期
default生命周期定义了真正构建时所需要执行的所有步骤。
1)validate
2) initialize
3) generate-sources
4) process-sources 处理项目主资源文件。
5)generate-resources
6) process-resources
7) compile 编译项目的主源码
8)process-classes
9) generate-test-sources
10) process-test-sources 处理项目测试资源文件
11) generate-test-resources
12) process-test-resources
13) test-compile 编译项目的测试代码
14)process-test-classes
15) test 使用单元测试框架运行测试
16)prepare-package
17) package
18) pre-intergration-test
19) intergration-test
20) post-intergration-test
21) verify
22) install 将包安装到maven本地仓库
23) deploy 将包复制到远程仓库
1.3 site生命周期
site生命周期的目的是建立和发布站点
1.4 命令行与生命周期
- mvn clean 调用clean生命周期的clean阶段,实际执行阶段为clean生命周期的pre-clean和clean阶段
- mvn test 调用default生命周期的test阶段,实际执行的阶段为default生命周期的validate、initalize等,直到test的所有阶段
2 插件
一个插件往往能够完成多个功能,每一个功能对应一个插件目标。如maven-dependency-plugin有十多个目标,dependency:analyze(项目依赖分析)、dependency:tree(依赖树)、dependency:list(依赖列表)。这是一种通用写法,冒号前面是插件前缀,冒号后面是该插件的目标。类似还可以写出compiler:compile(maven-compiler-plugin)和surefire:test(maven-surefire-plugin)
3 maven命令
- 使用maven-help-plugin插件 mvn help:describe -Dplugin=org.apache.maven.plugin:maven-compiler-plugin:2.1 这里执行的是maven-help-plugin插件的describe目标。在参数plugin中输入需要描述插件的groupId、artifactId和version。输出结果包括改插件的坐标、目标前缀和目标等。
- mvn install -Dmaven.test.skip=true 执行install,跳过测试
- mvn -h 显示maven的命令帮助, 可看到mvn [options] [<goal(s)>] [<phase(s)>]
标签:插件,生命周期,plugin,maven,clean,test From: https://www.cnblogs.com/javaXRG/p/16731711.html