<plugin>
<artifactId>maven-eclipse-plugin</artifactId>
<configuration>
<downloadSources>true</downloadSources>
</configuration>
</plugin>
/**
* @parameter
*/
private boolean downloadSources;
/**
* @parameter default-value="true"
* @readonly
*/
private boolean downloadSources;
/**
* @parameter expression="${project}"
* @readonly
*/
private MavenProject project;
/**
* @component
* @readonly
*/
private ArtifactFactory artifactFactory;
另外一种就是使用@component这个标注,可以获得一些基本的组件实例
PS:
通过传入参数可以实现多种灵活的配置。
此参数支持的种类很多:
boolean(包括 boolean和Boolean)
int(包括Integer,long, Long, short, Short, byte, Byte)
float(包括Float, double, Double)
String (包括StringBuffer, char, Character)
Date(格式为 yyyy-MM0dd HH:mm:ss S a 或者 yyyy-MM-ddHH:mm:ssa)
File(文件路径)
URL(url地址)
Collection
Map
Properties
实际上一个maven插件大体就是这个样子的。当然我们可以通过我们的其它代码写入我们的业务逻辑。
4.实际上包括mojo还有mojo中的成员变量都是通过注解方式配置的
那么下面简单说说mojo的主要的注解吧
goal:注解形式:@goal <goalName>
用户在命令行下直接调用插件的目标goal,或者在项目的pom文件中通过配置调用这个goal。
phase:注解形式:@phase <phaseName>
绑定这个mojo到标准构建生命周期里对应的阶段.
@requiresProject <true | false>
这个注解的意思是这个Mojo是否再一个 Maven项目中运行,我们上面的例子是直接在mvn仓库中运行这个插件。所以设置为false.如果没有进行过设置则默认是为true的
@requiresonline <true|false>
是否需要Maven必须在线状态.
对于一个mojo里的变量参数,也有一些常用的注解:
@parameter expression=”${aSystemProperty}” default-value=”${anExpression}”
对参数指定一个计算表达式、在mojo构建时将计算结果注入到此变量中,同时也可以给定一个默认值。这个参数值也可以在pom文件中予以配置。
@readonly
表示改Mojo参数是只读的,如果使用了注解。用户就无法对其进行配置
@required
表示该参数是必须的。如果使用了注解。又没有对其进行配置。则Maven就会报错
实际上Maven插件使用起来还是很灵活的。我们可以对其写一些自动化的测试工具。它提供的log也可以在插件运行不正常的时候快速的排查到它的问题。