笔记本|如何配置使用Maven插件?

笔记本|如何配置使用Maven插件?

如何配置使用Maven插件?
插件配置在学会自定义绑定插件后 , 我们还可以配置插件目标的参数 , 以进一步的控制插件目标所执行的任务 。 几乎所有的Maven插件都有一些可配置的参数 , 我们可以用两种方式去配置它 。
命令行配置
这种配置方式 , 相当于在执行时临时传参数 , 例如我们前面的mvn help:describe那一串命令 , 就利用-D传进了一些参数 。
参数-D是java自带的 , 其功能是通过命令行设置一个java系统属性 , maven是基于java的 , 它简单的重用了该参数 , 在准备插件的时候会检查系统属性 , 便利用java实现了插件参数的配置 。
例如maven-surefire-plugin插件提供了一个maven.test.skip参数 , 当它为true时 , 就会跳过执行测试 。 我们在执行命令时就可以这样输入:mvn install -Dmaven.test.skip=true
POM配置
但是我们更常用的还是在POM文件里配置 , 毕竟有些配置我们一旦配好了 , 后面就几乎不会改变 , 而命令行配置更适合临时的配置 。
例如maven-compiler-plugin , 我们需要配置告诉它编译java1.8版本的源文件 , 生成与JVM1.8兼容的字节码文件 。 可以在configuration标签内进行如下配置 , 还可以结合properties配置 。
<properties>
       <jdk.version>1.8</jdk.version>
   </properties>
   
   <build>
       <plugins>
           <plugin>
               <groupId>org.apache.maven.plugins</groupId>
               <artifactId>maven-compiler-plugin</artifactId>
               <version>3.1</version>
               <configuration>
                   <source>${jdk.version</source>
                   <target>${jdk.version</target>
               </configuration>
           </plugin>
       </plugins>
   </build>

这样配置好后 , 这个插件下的所有插件目标 , 就都会使用该配置了 , 不管是compile还是test-compile 。
如果要为特定的插件目标配置 , 只需要将configuration标签移到execution标签里即可 , 也就是跟goals标签同级的地方 。
命令行调用插件其实我们在前面已经用mvn help:describe用过一次了 , 这里再详细说明一下 。
调用插件的命令和mvn install、mvn package类似却又不同 , 它们这种是执行阶段 , 通过命令行指定执行阶段 , 从而顺藤摸瓜执行到和这个阶段绑定的插件目标 。
而我们现在是直接执行插件目标 , 与阶段完全无关 , 只需要输入如下
mvn org.apache.maven.plugins:maven-help-plugin:2.1:describe -Dplugin=compiler

即可
。。。
不是吧阿sir , 这么长你让我们怎么记得住啊?
其实这是标准的全称命令 , groupId:artifactId:version:插件目标 -D参数 , 全称虽然记不住 , 但是它的简写我们应该都认识:
mvn help:describe -Dplugin=compiler

【笔记本|如何配置使用Maven插件?】为了方便我们使用和配置 , Maven就引入了一个名为插件前缀的概念 , 这个概念我们下节再讲~