maven 插件深入了解

Posted 10年 Java程序员,硬核人生!勇往直前,永不退缩!

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了maven 插件深入了解相关的知识,希望对你有一定的参考价值。

 

http://www.infoq.com/cn/news/2011/04/xxb-maven-7-plugin

http://www.infoq.com/cn/news/2011/05/xxb-maven-8-plugin

 

整体介绍:

http://blog.jobbole.com/107576/  写得相当不错!

 

 

插件

生命周期的阶段phase与插件的目标goal相互绑定, 用以完成实际的构建任务. 而对于插件本身, 为了能够复用代码,它往往能够完成多个任务, 这些功能聚集在一个插件里,每个功能就是一个目标.
如:$ mvn compiler:compile: 冒号前是插件前缀, 后面是该插件目标(即: maven-compiler-plugincompile目标).
而该目标绑定了default生命周期的compile阶段:

 

内置绑定

为了能让用户几乎不用任何配置就能使用Maven构建项目, Maven 默认为一些核心的生命周期绑定了插件目标, 当用户通过命令调用生命周期阶段时, 对应的插件目标就会执行相应的逻辑.

  • clean生命周期阶段绑定
生命周期阶段插件目标
pre-clean
clean maven-clean-plugin:clean
post-clean
  • default声明周期阶段绑定
生命周期阶段插件目标执行任务
process-resources maven-resources-plugin:resources 复制主资源文件到主输出目录
compile maven-compiler-plugin:compile 编译主代码到主输出目录
process-test-resources maven-resources-plugin:testResources 复制测试资源文件到测试输出目录
test-compile maven-compiler-plugin:testCompile 编译测试代码到测试输出目录
test maven-surefire-plugin:test 执行测试用例
package maven-jar-plugin:jar 打jar包
install maven-install-plugin:install 将项目输出安装到本地仓库
deploy maven-deploy-plugin:deploy 将项目输出部署到远程仓库

注: 上表只列出了打包方式为jar且拥有插件绑定关系的阶段, 其他打包类型生命周期的默认绑定关系可参考: Built-in Lifecycle BindingsPlugin Bindings for default Lifecycle Reference.

  • site生命周期阶段绑定
生命周期阶段插件目标
pre-site
site maven-site-plugin:site
post-site
site-deploy maven-site-plugin:deploy

自定义绑定

除了内置绑定以外, 用户还能够自定义将某个插件目标绑定到生命周期的某个阶段上. 如创建项目的源码包, maven-source-plugin插件的jar-no-fork目标能够将项目的主代码打包成jar文件, 可以将其绑定到verify阶段上:

 

 

 

总结

一个生命周期 有多个 阶段, 一个阶段 可能有多个 目标。

 

以上是关于maven 插件深入了解的主要内容,如果未能解决你的问题,请参考以下文章

13.3.1 使用Maven运行 MyBatis Generator(MyBatis Generator逆向代码生成工具) -《SSM深入解析与项目实战》

13.3.1 使用Maven运行 MyBatis Generator(MyBatis Generator逆向代码生成工具) -《SSM深入解析与项目实战》

深入理解maven构建生命周期和各种plugin插件

深入理解maven及应用:生命周期和插件

Gradle系列:深入了解Gradle和Maven的区别

了解多模块项目中的 Spring Boot Maven 插件