17.5.3. 依赖于一个Plexus组件

一个Mojo是一个由名为Plexus的Ioc容器管理的组件。Mojo可以通过使用@parameter或@component注解声明Mojo参数,然后依赖于其它Plexu管理的组件。Example 17.7, “一个带有多值参数的插件”展示了ZipMojo使用@parameter注解依赖于一个Plexus组件,该依赖也可以使用@component注解来声明。

Example 17.8. 依赖于一个Plexus组件

/**
 * The Zip archiver.
 * @component role="org.codehaus.plexus.archiver.Archiver" roleHint="zip"
 */
private ZipArchiver zipArchiver;

当Maven初始化该Mojo的时候,它会尝试通过指定的role和role hint来获取Plexus组件。在该例中,这个Mojo关联到一个ZipArchiver组件,后者能帮助ZipMojo创建ZIP文件。