Maven - 插件

本文详细介绍了Maven中插件的配置,包括build和reporting两类插件,以及configuration、executions、dependencies和inherited等标签的使用。内容涵盖Mojo的概念、参数配置、映射对象以及执行阶段绑定等,旨在帮助读者深入理解Maven插件的配置和使用。
摘要由CSDN通过智能技术生成
介绍

在Maven中包含两类插件:build、reporting,很显然,前者与项目构建有关,后者与项目报告有关。

  • build plugins
    在build时、build后执行,配置:build元素。

  • reporting plugins
    在生成站点时执行,配置:reporting元素。

所有的插件的配置至少要包含:groupId,artifactId 和 version,恰好这三个元素为大家所熟悉,这里不再赘述。

configuration

这是build、reporting的公共元素。
先了解一下Mojo是什么:
每个插件都含有编写目标,比如clean、compile,Maven称之为Mojo。例子:假设我们有这样一个Mojo,它要查询一个URL地址,并且需要指定timeout及一些options:

/**
 * @goal query
 */
public class MyQueryMojo
    extends AbstractMojo
{
    /**
     * @parameter expression="${query.url}"
     */
    private String url;

    /**
     * @parameter default-value="60"
     */
    private int timeout;

    /**
     * @parameter
     */
    private String[] options;

    public void execute()
        throws MojoExecutionException
    {
        ...
    }
}

针对这个Mojo配置POM,如下:

<project>
  ...
  <build>
    <plugins>
      <plugin>
        <artifactId>maven-myquery-plugin</artifactId>
        <version>1.0</version>
        <configuration>
          <url>http://www.foobar.com/query</url>
          <timeout>10</timeout>
          <options>
            <option>one</option>
            <option>two</option>
            <option>three</option>
          </options>
        </configuration>
      </plugin>
    </plugins>
  </build>
  ...
</project>

很显然,configuration中的元素都与Mojo中的字段匹配,Maven的配置机制让人很简单的想到了使用XML配置来映射Java对象,所以上面的例子中,元素url映射到了url字段,timeout元素映射到了timeout字段,映射机制通过检查字段的类型来决定是否是一个可行的映射。对于Mojo而言,可以使用CLI(命令行)直接执行,所需要的参数可以通过系统属性来指定而取代通过configuration元素进行配置,对于那些参数,在插件文档中会描述系统参数由怎样的一个表达式来表示,在上面的例子中,url的表达式就是${query.url},意味着它的值可以由系统属性query.url来表示:

mvn myquery:query -Dquery.url=http://maven.apache.org

注意,系统属性名不一定非要与Mojo的参数名一样,但这是一个比较普遍的做法。对于插件的系统变量,应该采用一些字首来避免与其他插件的系统变量冲突,甚至有些插件系统变量名与参数名毫不相关,所以查看插件文档是非常必要的。

参数配置

映射简单对象

<configuration>
  <myString>a string</myS
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值