常用的注入主要有两种,第一种是xml配置中的额外设置。比如说我们有这么一个plugin的配置
1
2
3
4
5
6
所有写在configuration里面的属性都可以注入到Mojo中,比如说以下代码
1
/**
2
* @parameter
3
*/
4
private boolean downloadSources;
就可以通过downloadSources变量获得配置中的值
值得注意的是,这里是不用生成完整的JavaBean模式的get/set的,并且private是有效的
javadoc里面还可以加入其他属性,比如说
1
/**
2
* @parameter default-value="true"
3
* @readonly
4
5
private boolean downloadSources;
就是默认为true,并且不能通过配置修改(当然我们这里肯定不会有这样的需求)
更多的javadoc可以参看官方文档中的说明
第二种注入的数据就是上下文,跟HttpServlet.getServletContext这种写法不一样,如果我们需要Mojo运行期的上下文,也是通过注入获得的
01
/**
02
* @parameter expression="${project}"
03
* @readonly
04
*/
05
private MavenProject project;
06
07
/**
08
* @component
09
* @readonly
10
*/
11
private ArtifactFactory artifactFactory;
例如这里我们就能获得ArtifactFactory和MavenProject
需要注意的是这里可能有两种方法,第一种跟xml配置获得的方法差不多,通过expression指定名字
实际上,你在xml里面,也可以通过${project}获得相应的东西进行一些简单的操作(当然xml里面只能文本描述,这里是一个类)
另外一种就是使用@component这个标注,可以获得一些基本的 组件实例