2019-03-16 maven插件开发

最近因工作需要学习了maven插件开发,之前工作内容都是业务功能的开发,借此机会正好了解一下maven插件开发。

maven插件开发的主要流程如下:

1、新建项目,添加pom依赖:maven-plugin-api,maven-plugin-annotations。
<dependency>
    <groupId>org.apache.maven</groupId>
    <artifactId>maven-plugin-api</artifactId>
    <version>3.6.0</version>
</dependency>
<dependency>
    <groupId>org.apache.maven.plugin-tools</groupId>
    <artifactId>maven-plugin-annotations</artifactId>
    <version>3.6.0</version>
    <scope>provided</scope>
</dependency>
2、修改pom文件的packaging为maven-plugin
<packaging>maven-plugin</packaging>
3、新建Mojo类,继承AbstractMojo,添加mojo注解并指定goal,
@Mojo(name = "goal")
public class SWQAMojo extends AbstractMojo {
    @Override
    public void execute() {
    }
}
  • 实现execute方法,其中execute方法是执行入口,日志输出使用getLog()来打印。
  • maven插件使用
<plugin>
    <groupId>com.groupName</groupId>
    <artifactId>xxxx-maven-plugin</artifactId>
    <version>1.0-SNAPSHOT</version>
</plugin>
  • 本地调用直接maven install即可
  • 远程调用需要maven deploy 到仓库(需指定distributionManagement),使用方需要配置pluginRepository
4、maven插件的调试(比如插件项目为A,使用插件项目为B)
  • 在B项目pom文件引入插件
  • 在B项目的根目录下打开控制终端,输入mvnDebug 插件名:goal
  • 在A项目run/debug configurations新建remote,在命令行参数把address改为8000,保存后切换到remote运行配置,点击调试按钮开始执行,需要提前在A项目源代码打好断点。
  • 日志打印会在B项目输出,进入断点会切换到A项目
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容