<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也可以在插件运行不正常的时候快速的排查到它的问题。