命令行插件配置:在日常的maven使用中我们会经常从命令行输入并执行maven命令。在这种情况下如果能够方便地更改某些插件的行为无疑会十分方便。很多插件目标的参数都会支持从命令行配置,用户可以在maven命令中使用-D参数并伴随一个参数键=参数值的形式,来配置插件目标的参数。
例如maven-surefire-plugin提供了一个maven.test.skip参数,当其值为true的时候,就会跳过执行测试。于是在运行命令的时候加上如下-D参数就能跳过测试:
mvn install -Dmaven.test.skip=true
参数-D是java自带的其功能就是通过命令行设置一个java系统属性,maven简单地重复用了该参数。
POM中插件全局配置:用户可以在声明插件的时候,对此插件进行一个全局的配置。也就是说所有该基于该插件目标的任务都会使用这些配置,例如我们通常会需要配置maven-compiler-plugin告诉他编译java1.5版本的源文件,生成与JVM1.5兼容的字节码文件,如下:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.1</version>
<configuration>
<source>1.5</source>
<target>1.5</target>
</configuration>
</plugin>
</plugins>
</build>
这样不管绑定到compile阶段的maven-compiler-plugin:compile任务还是绑定到test-compiler阶段的maven-compiler-plugin:testCompiler任务就都能够使用该配置,基于java1.5版本进行编译。
POM中插件任务配置:除了为插件配置全局的参数,用户还可以为某个插件任务配置特定的参数。以maven-antrun-plugin为例,它有一个目标run,可以用来在Maven中调用Ant任务。用户将maven-antrun-plugin:run 绑定到多个生命周期阶段上,再加以不同的配置,就可以让Maven在不同的生命阶段执行不同的任务,如:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.3</version>
<executions>
<execution>
<id>ant-validate</id>
<phase>validate</phase>
<goals>
<goal>run</goal>
</goals>
<configuraction>
<tasks>
<echo>I'm bound to validate phase.</echo>
</tasks>
</configuraction>
</execution>
<execution>
<id>ant-verify</id>
<phase>verify</phase>
<goals>
<goal>run</goal>
</goals>
<configuraction>
<tasks>
<echo>I'm bound to verify phase.</echo>
</tasks>
</configuraction>
</execution>
</executions>
</plugin>
</plugins>
</build>
在上述代码片段中,首先,maven-antrun-plugin:run 与 validate阶段绑定,从而构成一个id为ant-validate的任务。插件全局配置中得configuraction元素位于plugin元素下面,而这里的configuraction元素则位于execution元素下,表示这是特定任务的配置,而非插件整体的配置。
这个ant-validate任务配置了一个echo Ant任务,向命令行输出一段文字,表示该任务是绑定到validate阶段的。
第二个任务的id为ant-verify,它绑定到了verify阶段,同样它也输出了一段文字到命令行,告诉该任务绑定到了verify阶段。

被折叠的 条评论
为什么被折叠?



