概况
实现一个自定义的类,必须要继承自 org.apache.maven.plugin.AbstractMojo,同时实现execute方法。
maven使用了在注释中写代码,BT的写法,所以注释里的@goal @parameter都是有含义的。
实例
- mvn hello:gogo
进入
hello被叫做plugin的prefix,maven会去寻找以hello开头的插件。
在插件的pom里必须定义其名字为hello开头的,例如:
- <artifactId>hello-maven-plugin</artifactId>
goal目标 hello后面的gogo叫做goal,目标,则以注释中写代码的方式来完成:
- /**
- *@goal gogo
- **/
- HelloMojo extends AbstractMojo
需要的依赖
- <dependency>
- <groupId>org.apache.maven</groupId>
- <artifactId>maven-plugin-api</artifactId>
- <version>3.0.3</version>
- </dependency>
必需的选项
- <packaging>maven-plugin</packaging>
参数 如果要传什么参数给插件,应该是
- /**
- * if false all compression is off (default is true)
- *
- * @parameter expression="${hello.enabled}" default-value="true"
- */
- private Boolean enabled=true;
使用时项目定义 然后在使用的项目里,需要定义的有
- <plugin>
- <groupId>com.chen</groupId>
- <artifactId>demo-maven-plugin</artifactId>
- <version>1.0</version>
- <configuration>
- <goalPrefix>hello</goalPrefix>
- <enabled>false</enabled>
- </configuration>
- </plugin>
然后执行上述命令时自然可以执行HelloMojo的execute方法。
原创文章如转载,请注明:转载自五四陈科学院[http://www.54chen.com]
捐赠说明