Mojo插件demo
Mojo :Maven plain Old Java Object。
每一个 Mojo 就是 Maven 中的一个执行目标(executable goal),而插件则是对单个或多个相关的 Mojo 做统一分发。
一个 Mojo 包含一个简单的 Java 类。
插件中多个类似 Mojo 的通用之处可以使用抽象父类来封装。
步骤:
1.创建Maven项目
2. 添加pom依赖
<dependencies> <dependency> <groupId>org.apache.maven</groupId> <artifactId>maven-plugin-api</artifactId> <version>2.0</version> </dependency> <dependency> <groupId>org.apache.maven.plugin-tools</groupId> <artifactId>maven-plugin-annotations</artifactId> <version>3.2</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies>
3. 新建Mojo类
注解形式:
@Mojo(name = "hello", requiresDependencyResolution = ResolutionScope.COMPILE) public class HelloMojo extends AbstractMojo { @Override public void execute() throws MojoExecutionException, MojoFailureException { System.out.println("Hello Mojo!"); } }
doc形式:
/** * @goal hello */ public class HelloMojo extends AbstractMojo { @Override public void execute() throws MojoExecutionException, MojoFailureException { System.out.println("Hello Mojo!"); } }
Mojo 的查找机制:在处理源码的时候,plugin-tools 会把使用了 @Mojo 注解或 Javadoc 里包含 @goal 注释的类来当作一个 Mojo 类
4.构建发布mojo插件本地
mvn install
5.如何用?
<plugin>
<groupId>com.code</groupId>
<artifactId>mojo-demo</artifactId>
<version>1.0-SNAPSHOT</version>
<executions>
<execution>
<phase>compile</phase>
<goals>
<goal>hello</goal>
</goals>
</execution>
</executions>
</plugin>
在使用使用的项目中引入此插件,<goal>指定运行的mojo,在项目compile时自动运行此插件。
分类:
Maven
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
2017-12-27 linux内置软件安装命令