如何编写一个Maven插件

如何编写一个Maven插件

本文基于eclipse ee.

  • 建立一个maven插件工程:

    

  • 主要就是让项目能依赖maven-plugin-api:

    

  • 编写一个Mojo类:
/**
 * 用于输出消息的Mojo
 * @goal hello
 */
public class HelloMojo extends AbstractMojo {

	/**
	 * @parameter expression="${echo.message}" default-value="Hello Maven World..."
	 */
	private Object message;

	public void execute() throws MojoExecutionException {
		getLog().info(message.toString());
	}
}
  • 安装到本地 mvn install
  • 运行插件:

    

    

  • 但是对于上面我们运行插件时要写这么多<groupId>:<artifactId>:<version>:goal是一件比较痛苦的事,我们需要配置一个前缀来运行我们的插件,比如hello:hello即表示运行hello-mave-plugin的hello的目标:

      配置M2_HOME/settings.xml添加插件组:

<pluginGroups>
    <!--  插件的groupId -->
    <pluginGroup>org.idestiny.learn.maven</pluginGroup>
</pluginGroups>
      于是你可以通过前缀来运行插件目标,那么mvn默认会以{prefix}-maven-plugin或maven-{prefix}-plugin去找对应的插件,在这里prefix即为hello:

     

那么如何在我们install我们的插件时就指定其前缀,而不是像上面这样,我们需要在build插件时,加上一个插件即可,加入配置到pom.xml:  

<build>
    <plugins>
	<!-- 配置本插件的前缀, 则可以通过 abcd:hello 运行本插件目标hello -->
	<plugin>
	    <artifactId>maven-plugin-plugin</artifactId>
	    <version>2.3</version>
	    <configuration>
		 <goalPrefix>abcd</goalPrefix>
	    </configuration>
	</plugin>
    </plugins>
</build>
  • mvn install安装插件,运行插件abcd:hello:

    

具体其他一些api细节可以参考:

http://maven.apache.org/developers/mojo-api-specification.html

不吝指正。

转载于:https://my.oschina.net/indestiny/blog/290061

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值