本文主要是介绍maven插件编写之mojo,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、Mojo
Mojo: Maven plain Old Java Object,实际上是一个maven的目标,插件包含任意数量的目标(Mojos)。
按照官方建议,maven插件的命名建议为xxxx-maven-plugin
自定义插件maven执行命令为mvn groupId:artifactId:goal,使用推荐命名方式,maven命令可以简化为mvn xxxx:goal
二、创建插件
1.pom文件
指定打包类型为maven-plugin
<?xml version="1.0" encoding="UTF-8"?>
<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>org.example.tools</groupId><artifactId>hello-maven-plugin</artifactId><version>1.0-SNAPSHOT</version><packaging>maven-plugin</packaging><dependencies><dependency><groupId>org.apache.maven</groupId><artifactId>maven-plugin-api</artifactId><version>3.5.2</version></dependency><dependency><groupId>org.apache.maven.plugin-tools</groupId><artifactId>maven-plugin-annotations</artifactId><version>3.5.2</version></dependency></dependencies>
</project>
2.mojo实现类
@Mojo注解指定目标名称,@Parameter注解指定Mojo输入
@Mojo(name = "hello-goal")
public class MyMojo extends AbstractMojo {@Parameter(property = "param")private String param;@Overridepublic void execute() throws MojoExecutionException, MojoFailureException {getLog().warn("Hello Mojo...");getLog().warn("param: " + param);}
}
3.生成插件
使用mvn clean install生成插件,安装到本地仓库
三、运行插件
1.pom文件
<?xml version="1.0" encoding="UTF-8"?>
<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>org.example</groupId><artifactId>maven-haha</artifactId><version>1.0-SNAPSHOT</version><build><plugins><plugin><groupId>org.example.tools</groupId><artifactId>hello-maven-plugin</artifactId><version>1.0-SNAPSHOT</version><configuration><param>This is par</param></configuration></plugin></plugins></build>
</project>
2.执行命令
mvn org.example.tools:hello-maven-plugin:1.0-SNAPSHOT:hello-goal
mvn hello:hello-goal
四、绑定 maven 执行周期
1.pom文件
将插件配置为将特定目标,从而附加到构建生命周期中的某个特定阶段
<?xml version="1.0" encoding="UTF-8"?>
<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>org.example</groupId><artifactId>maven-haha</artifactId><version>1.0-SNAPSHOT</version><build><plugins><plugin><groupId>org.example.tools</groupId><artifactId>hello-maven-plugin</artifactId><version>1.0-SNAPSHOT</version><configuration><param>This is par</param></configuration><executions><execution><id>hello-id</id><phase>clean</phase><goals><goal>hello-goal</goal></goals></execution></executions></plugin></plugins></build>
</project>
2.执行命令
执行mvn clean时,会运行hello-maven-plugin插件
这篇关于maven插件编写之mojo的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!