再续maven 编写自己的maven插件
2013-03-05 16:31
369 查看
伴随着日常开发的需要,我们可能需要用到的maven插件,这些插件一部分可以去网上下载,一部分可以去问下公司里面的前辈们,可是还有第三种情况的时候,比如我们需要特殊服务的时候,就需要自定义编写maven插件了来满足我们的开发需求了
下面简单介绍一下如何编写自己的maven插件
在编写maven插件时候有两点需要注意:
第一:编写插件pom.xml
第二:编写真正做事情的插件java类
接下来先看pom.xml文件的内容:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>sample.plugin</groupId>
<artifactId>hello-maven-plugin</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>maven-plugin</packaging>
<name>hello-maven-plugin</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-plugin-api</artifactId>
<version>2.0</version>
</dependency>
</dependencies>
</project>
这个pom.xml文件要注意两点,
1).一个就是<packaging>的类型,应该是maven-plugin
2).一个就是Maven插件项目必须依赖一个插件maven-plugin-api
接下来我们再来看客户端提供的“特殊Maven服务"的类插件类必须继承org.apache.maven.plugin.AbstractMojo
其实我们的maven插件是嵌入很多的Mojo的
接下来看具体代码吧
package sample.plugin;
import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.MojoFailureException;
/**
* @goal info
* @phase compile
* @requireProject false
* @author cxb
* 2013-3-5 下午03:01:19
*/
public class GreetingMojo extends AbstractMojo{
/**
* @parameter expression="${name}"
* @required
*/
String name;
/**
* @parameter expression="${age}"
* @required
*/
int age;
/**
* @parameter expression="${isOk}"
* @required
*/
boolean isOk;
public void execute() throws MojoExecutionException, MojoFailureException {
getLog().info(this.toString());
}
@Override
public String toString() {
return "String is : \"" + name + "\"" + "int is : \"" + age + "\""
+ "boolean is : \"" + isOk + "\"";
}
}
这里面的一些注解比较有意思哦,可别以为它是普通的注释信息,Maven编译的时候不会忽略这些注释信息的,这些注释信息暗含了该插件的执行信息。
@goal info:表示该插件的服务目标
@phase compile:表示该插件的生效周期阶段
@requiresProject false:表示是否依托于一个项目才能运行该插件
@parameter expression="${name}":表示插件参数,使用插件的时候会用得到
@required:代表该参数不能省略
3)使用自定义插件
使用插件之前先进行安装install
之后在执行如下命令:
sample.plugin:hello-maven-plugin:info -Dname=chen -Dage=25 -DisOk=true
下面简单介绍一下如何编写自己的maven插件
在编写maven插件时候有两点需要注意:
第一:编写插件pom.xml
第二:编写真正做事情的插件java类
接下来先看pom.xml文件的内容:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>sample.plugin</groupId>
<artifactId>hello-maven-plugin</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>maven-plugin</packaging>
<name>hello-maven-plugin</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-plugin-api</artifactId>
<version>2.0</version>
</dependency>
</dependencies>
</project>
这个pom.xml文件要注意两点,
1).一个就是<packaging>的类型,应该是maven-plugin
2).一个就是Maven插件项目必须依赖一个插件maven-plugin-api
接下来我们再来看客户端提供的“特殊Maven服务"的类插件类必须继承org.apache.maven.plugin.AbstractMojo
其实我们的maven插件是嵌入很多的Mojo的
接下来看具体代码吧
package sample.plugin;
import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.MojoFailureException;
/**
* @goal info
* @phase compile
* @requireProject false
* @author cxb
* 2013-3-5 下午03:01:19
*/
public class GreetingMojo extends AbstractMojo{
/**
* @parameter expression="${name}"
* @required
*/
String name;
/**
* @parameter expression="${age}"
* @required
*/
int age;
/**
* @parameter expression="${isOk}"
* @required
*/
boolean isOk;
public void execute() throws MojoExecutionException, MojoFailureException {
getLog().info(this.toString());
}
@Override
public String toString() {
return "String is : \"" + name + "\"" + "int is : \"" + age + "\""
+ "boolean is : \"" + isOk + "\"";
}
}
这里面的一些注解比较有意思哦,可别以为它是普通的注释信息,Maven编译的时候不会忽略这些注释信息的,这些注释信息暗含了该插件的执行信息。
@goal info:表示该插件的服务目标
@phase compile:表示该插件的生效周期阶段
@requiresProject false:表示是否依托于一个项目才能运行该插件
@parameter expression="${name}":表示插件参数,使用插件的时候会用得到
@required:代表该参数不能省略
3)使用自定义插件
使用插件之前先进行安装install
之后在执行如下命令:
sample.plugin:hello-maven-plugin:info -Dname=chen -Dage=25 -DisOk=true
相关文章推荐
- 【Maven】Maven Plugin示例:自己动手编写Maven插件
- Maven Plugin示例:自己动手编写Maven插件
- 自己动手编写Maven的插件
- 【Maven】Maven Plugin示例:自己动手编写Maven插件
- 【Maven】Maven Plugin示例:自己动手编写Maven插件
- 【Maven】Maven Plugin示例:自己动手编写Maven插件
- 开发自己的Maven插件之二:利用创建向导简化工作
- Maven学习4:编写maven插件补充
- 自己动手编写一个VS插件(三)——创建工具栏之一
- 学会自己编写AndroidStduio插件
- 导出ECLIPSE中自己编写的插件
- 编写自己的jquery插件
- 编写自己的jquery插件
- 编写自己的jQuery提示框(Tip)插件
- 编写自定义Maven2插件
- 为Nagios编写自己的插件
- 自己动手编写一个VS插件(一)
- 在windows和Linux上安装ImageMagick与jmagick,Maven配置、Java图片压缩代码(整理网上、结合自己情况、编写出来的新安装方式)
- 转帖一个最近用到的东西:“在QT下为开发板的键盘编写输入插件”,加上部分自己的补充说明
- 自己编写的仿京东移动端的省市联动选择JQuery插件