maven和maven插件开发的心得总结(持续更新..)

Posted zhhiyp

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了maven和maven插件开发的心得总结(持续更新..)相关的知识,希望对你有一定的参考价值。

今天第一次开发maven插件.

几个好的资源页面推荐:

1.apache.maven的官网,plugins开发的文档

http://maven.apache.org/plugin-developers/index.html

2.网上的几个博客论坛可以看看.

 

开发细节:

0.maven每一个插件的任务叫做"goal",可以取名字

1.继承mojo类,要记得使用注解@Mojo,可以配置goal的名字,和默认的phase,phase就是让你的插件和maven的生命周期的哪一个阶段挂钩,到了那个阶段就会执行你的插件.

2.如果需要项目的一些信息,可以在mojo继承类,声明private的MavenProject类,maven的IOC容器会自动注入.在execute方法里你可通过MavenProject获得项目模块的信息.

3.MavenProject其实是对应一个Maven项目的module!!!

4.插件的运行是这样子的滴~

首先根据你的mvn命令,对父模块执行每一个插件(在生命周期每一个phase里),接下来对每个子模块分别还是按顺序执行插件.

也就是说,如果你的插件想做到所有模块编译完才做业务逻辑,那得自己去做判断了.比如判断执行的模块数到是不是总的那么多(MavenProject.getModules() 有惊喜~)

5.执行maven插件:

有几个官网不一定找得到的信息:

a)官网讲的是,客户项目的POM里要有build和report配置.官网也将插件分为build类和report类.

b)实际上,如果POM里没配置这个插件,也能运行.

比如mvn package pmd:pmd

其实会去本地仓库查找有没有对应的jar包,没有就去网上查找,或配置的公司中央仓库查找.找不到,就fail

所以只要你仓库有就能运行!就不需要POM写配置了.(POM写配置被官网称为most direct means)

6.几个maven命令:

如果想执行别的POM文件,或者指定路径,就用mvn -f [POM路径]

也许你可以玩玩 maven install到本地jar:

mvn install:install-file -DgroupId=[..] -DartifactId=[..] -Dversion=[..] -Dpackaging=jar -Dfile=jar包路径

7.java代码使用Runtime里执行mvn,需要改成mvn.cmd

 

后续继续更新...

 

以上是关于maven和maven插件开发的心得总结(持续更新..)的主要内容,如果未能解决你的问题,请参考以下文章

开发过程使用Tomcat Maven插件持续快捷部署Web项目

Jenkins——Jenkins介绍+基于云平台的Jenkins安装和持续集成环境配置(插件+用户权限+凭据+Maven打包)

Maven有哪些优点和缺点

JAVA面试常问知识总结——Maven

Jenkins——持续集成介绍及Jenkins安装部署(插件+用户权限+凭据+Maven打包)

Jenkins——持续集成及Jenkins介绍和安装配置(插件,用户权限,凭据,Maven安装打包,配置tomcat用户权限)