初探maven插件机制

第一部分
Plexus

本质上说,Maven是一个plugin的框架,所以需要有一个管理者来管理这些pluginMaven选择了Plexus作为plugin的管理者。作为初探maven系列的第一部分,我们先简单的了解以一下Plexus

Plexus可以被理解为一个IOC或者Dependency Injection的框架。Component则是Plexus框架所管理的单元。Plexus本身内建了多个component供用户(如,maven)使用,用户也可以自定义component。一个plexus应用程序可以包含多个component。可以简单的认为Plexus有点类似Spring

使用Plexus需要用到两种描述符(Descriptor),plexus.xmlcomponent.xml。他们都存在于META-INF/plexus/中。两者都是用于配置plexus应用或者compoenent的配置信息。区别在于一个plexus应用只能含有一个plexus.xml,却可以包含多个component.xml(因为每一个component都有一个component.xml)。关于plexus.xmlcomponent.xml的详细信息可以参考:http://plexus.codehaus.org/plexus-containers/plexus-container-default/plexus-configuration.html

使用Plexus重要步骤就是编写component。可以参考一个5-minute的教程,快速学习。http://plexus.codehaus.org/guides/quick-start/getting-started.html

maven相关的东西,还有plexus的三个annotation。可以参考此处:http://plexus.codehaus.org/guides/developer-guide/appendices/javadoc-tags-reference.html

关于plexus的简单介绍就到这里,东西不是很多。下一部分将介绍maven插件 – mojo.

注:在plexus主页上,有关于编写mojo时如何使用component的介绍。可以作为下一部分的热身.