1、创建maven项目,配置相关依赖pom.xml
注意 <packaging>maven-plugin</packaging>
| <?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>com.wywtime.plugins</groupId> |
| <artifactId>bsmn-maven-plugin</artifactId> |
| <version>0.0.1</version> |
| <packaging>maven-plugin</packaging> |
| |
| <dependencies> |
| |
| <dependency> |
| <groupId>org.apache.maven</groupId> |
| <artifactId>maven-plugin-api</artifactId> |
| <version>3.8.6</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.apache.maven.plugin-tools</groupId> |
| <artifactId>maven-plugin-annotations</artifactId> |
| <version>3.6.4</version> |
| <scope>provided</scope> |
| </dependency> |
| |
| </dependencies> |
| |
| </project> |
| |
2、创建AbstractMojo实现类
| package com.wywtime.plugin; |
| |
| |
| import org.apache.maven.plugin.AbstractMojo; |
| import org.apache.maven.plugin.MojoExecutionException; |
| import org.apache.maven.plugin.MojoFailureException; |
| import org.apache.maven.plugins.annotations.Mojo; |
| import org.apache.maven.plugins.annotations.Parameter; |
| |
| @Mojo(name = "hello") |
| public class BsmnMavenHelloMojo extends AbstractMojo { |
| |
| @Parameter |
| private String basedir; |
| |
| @Parameter |
| private String name; |
| |
| public void execute() throws MojoExecutionException, MojoFailureException { |
| getLog().info("hello "+name+", this is bsmn's first plugin"); |
| getLog().info("current basedir is:"+basedir); |
| } |
| |
| } |
3、安装插件
发现通过idea工具install,与命令行有差异,是因为命令行用的是本地安装的maven
| |
| mvn help:effective-settings |
4、修改settings.xml
| <pluginGroups> |
| <pluginGroup>com.wywtime.plugins</pluginGroup> |
| </pluginGroups> |
5、在新项目中引入插件
修改pom.xml
| <build> |
| <plugins> |
| <plugin> |
| <groupId>com.wywtime.plugins</groupId> |
| <artifactId>bsmn-maven-plugin</artifactId> |
| <version>0.0.1</version> |
| <configuration> |
| <name>abc</name> |
| <basedir>${project.basedir}</basedir> |
| </configuration> |
| </plugin> |
| </plugins> |
| </build> |
6、执行指令
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下