Maven插件编写

      最近一直在学习Maven,今天看到了Maven插件方面的知识了,具体插件是什么,怎么编写自定义插件等等,这一系列的问题的理解了,不是专门来编写插件的,只是为了了解插件的编写的基本流程,至于深入理解,这里还不到那层次,比如需要了解的maven的内部原理:包括如何管理软件组织,如果能够自定义声明周期等等,就暂未深层次去了解了。

      1、什么是插件

      一个maven插件是包含一个插件描述符和一个或者多个Mojo的maven构件,一个Mojo可以被认为是maven中的一个目标,每一个目标对应了一个Mojo。这里我一直有疑问,Mojo是什么?Mojo不仅仅是Maven中的一个目标,它是一个由Plexus管理的组件,可以引用其他Plexus组件。另外,Maven是基于Plexus,对这个不了解,就挺说是一IoC容器。

      2、创建一个插件项目

      2.1 通过eclipse,new->other->maven project,选择archetypeGroupID为org.apache.maven.archetypes,archetypeArtifactId为maven-archetype-mojo的Archetype创建一个插件项目,m2eclipse将帮你生成一个MyMojo.java的文件,其实直接可以mvn install后,然后就可以直接用了,这里就自己来更改实现一个打印的简单函数

/**
 * Goal which print the message
 *
 * @goal print
 * 
 */
public class MyMojo extends AbstractMojo
{
	/**
	 * Any Object to print out
	 * @parameter expression="${print.message}" default-value="Maven Plugin"
	 */
	private Object message;
	
    public void execute() throws MojoExecutionException, MojoFailureException
    {
       getLog().info(message.toString());
    }
}

 通过Run as-->maven install就可以使用如下的命令[mvn groupId:artifactId:version:goal]看到效果了:

mvn net.cl.plugins:maven-first-plugin:0.0.1-SNAPSHOT:print,输出如下图所示:


Maven插件编写_第1张图片

同样也可以自定义消息:

mvn net.cl.plugins:maven-first-plugin:0.0.1-SNAPSHOT:print -Dprint.message="Hello World",输出如下图所示:


Maven插件编写_第2张图片
 

完。

参考资料:《maven-definitive-guide_zh》

你可能感兴趣的:(Maven插件编写)