首页 > 其他分享 >自定义gradle插件并且发布到本地仓库

自定义gradle插件并且发布到本地仓库

时间:2023-07-24 20:12:36浏览次数:49  
标签:插件 自定义 plugin implementation gradle pom com

转载请标明出处,维权必究:http://77blogs.com/?p=189
一、在工程上新建一个Module。

二、删除其余不必要的文件,最终目录结构如下:
image

注意:由于我用的是kotlin语言,所以用的是java目录,java语言也是用java目录,如果用的是groovy语言,那么就用groovy目录。

src/main/resources/META-INF/gradle-plugins目录下定义插件声明,*.properties文件的文件名就是插件名称
比如image
而文件的内容implementation-class后面跟着的是插件类的全类名。

三、module的gradle引入相关的依赖以及插件

apply plugin: 'java'
apply plugin: 'groovy'
apply plugin: 'maven'
apply plugin: 'kotlin'

repositories {
    maven { url 'http://maven.aliyun.com/nexus/content/groups/public' }
    google()
    jcenter()
    mavenLocal()
}

dependencies {
    implementation gradleApi()
    implementation localGroovy()
    implementation "commons-io:commons-io:2.6"
    implementation 'com.android.tools.build:gradle:4.0.1'
    implementation 'com.android.tools.build:gradle-api:4.0.1'
    implementation 'org.ow2.asm:asm:7.1'
    implementation 'org.ow2.asm:asm-util:7.1'
    implementation 'org.ow2.asm:asm-commons:7.1'
    implementation "org.jetbrains.kotlin:kotlin-stdlib:1.4.32"
}

uploadArchives {
    repositories {
        mavenDeployer {
            pom.groupId = 'com.plugin'
            pom.artifactId = 'double-click'
            pom.version = '1.0.26'
            //发布到本地仓库
            repository(url: uri('../repo'))
        }
    }
}

由于我需要用到asm与transform相关的api,所以引入了相关的依赖。

四、编写插件代码,此处不展开说了。

五、发布到本地仓库:

uploadArchives {
    repositories {
        mavenDeployer {
            pom.groupId = 'com.xxx.plugin'
            pom.artifactId = 'double-click'
            pom.version = '1.0.26'
            //发布到本地仓库
            repository(url: uri('../repo'))
        }
    }
}

  • pom.groupId:groundId自己定义,一般为包名
  • pom.artifactId:artifactId自己定义
  • pom.version:版本号
  • repository(url: uri('../repo')):仓库地址,为本地项目的repo文件夹,注意../不要写错,这是代表gradle所在目录的上一层目录。

六、引用
1、项目的app.gradle里引入插件:

apply plugin: 'com.xxxx.double-click'

该名称为第二部里面所讲的插件名称。

2、project.gradle中引入地址:

buildscript {
    ext.kotlin_version = "1.4.32"
    repositories {
        google()
        jcenter()
        maven {
            //配置本地插件目录
            url uri('./repo')
        }
    }
    dependencies {
        classpath "com.android.tools.build:gradle:4.1.3"
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.6.10"
        classpath "com.xxxxx.plugin:double-click:1.0.26"
    }
}

这里主要有两部分:
(1)配置本地插件所在的目录,注意要与发布到本地仓库时候写的地址对应上。

maven {
     //配置本地插件目录
     url uri('./repo')
}

(2)声明,写法就是发送到本地仓库时候所写的groupId:artifactId:version

classpath "com.xxxxx.plugin:double-click:1.0.26"

标签:插件,自定义,plugin,implementation,gradle,pom,com
From: https://www.cnblogs.com/tangZH/p/17577901.html

相关文章

  • Tool-CMake-添加自定义宏定义
    Tool-CMake-添加自定义宏定义cmake,makefile中定义的宏变量,其实和C/C++中的#define是一致的,可以传入到C/C++中。控制程序的编译比如:cmake中有宏定义:add_definitions(-Dhello="hellocmake")......
  • solr中如何定义自己的解析器插件(QParserPlugin)
    /*****************************************************/>solr中如何定义自己的解析器插件/*****************************************************/0.为什么要自定义自己的解析器插件/*****************************************************///因为solr默认的Lucen......
  • 15款提高表格操作的jQuery插件
       table表格由于它的浏览器兼容性和复杂的标签嵌套方式,可以算是添加样式最困难的对象之一了。大多数前端er都把网页中的table标签替换为div,主要就是因为div要比table更容易添加CSS样式。但是我们在日常应用中仍然要用到table表格,其中最好的例子就是对照表。今天彬Go将向大家......
  • jQuery水印插件 - Watermark 和 FormWatermark
    FormWatermark是一个跨浏览器的可以给表单文本框和文本区域增加水印的插件,使用FormWatermark给表单增加水印提示功能,这有助于提高用户交互和友好度,如果配合jQuery插件Validation可提供强大的用户体验,FormWatermark使用简单,效果图如下: 使用说明需要使用jQuery库文件和Form......
  • 30+ 新鲜惊奇的 jQuery 插件与教程
    在网络发展领域,由于jQuery简单易学,易于使用和易于扩展的特点,因此正慢慢变得无处不在。以下是从一些jQuery相关文章中整理出来的30+新鲜与惊奇的jQuery插件与教程。如果你正在寻找最新的jQuery信息,这些内容值得一读。教程1.Howtoaddpreloaderwithloadingimagein......
  • VSCODE自定义代码风格
    VSCode启用代码风格修正1.打开Settings2.设置Clang_format搜索clang_format相关配置设定clang_format基础风格基础风格中LLVM与Google都是缩进为2,所以还需要自定义风格。设定clang_format自定义风格文件的路径指定自定义分割文件的路径(XXX.clang-format)。自定义风格......
  • 【jQuery】smartMenu右键自定义上下文菜单插件(似web QQ)
    DEMO: http://sources.ikeepstudying.com/menu-mail-qq/ 一、这是什么样的一个插件我们都知道,默认状态下,我们右键web页面,会出现一个上下文菜单,例如下图:【jQuery】smartMenu右键自定义上下文菜单插件(似webQQ)但是,浏览器默认的右键选项有时候并不是我们所需要的,......
  • 3ds Max动力学插件RayFire图文教程:如何使用RayFire 实现酷炫逼真的爆炸碎裂效果第 2部
     在本教程的第二部分中,我将向您展示如何使用3dsMax中的RayFire将柱子逼真地拆除成数千个不同大小的块。推荐:NSDT场景编辑器助你快速搭建可二次开发的3D应用场景1.场景设置步骤1打开 3dsMax。打开3dsMax步骤2转到>平面创建>标准基元并创建一个透视视口上的......
  • 3ds Max动力学插件RayFire图文教程:如何使用RayFire 实现酷炫逼真的爆炸碎裂效果第 3部
     推荐:NSDT场景编辑器助你快速搭建可二次开发的3D应用场景1.场景设置步骤1打开 3dsMax。打开3dsMax步骤2转到>平面创建>标准基元并创建一个透视视口上的地平面如下图所示。>平面创建>标准基元步骤3转到创建>标准基元>框并创建墙地平面上的结构。>框中创建>......
  • 引入代码来源:深入分析markdown-it-quote插件的魔法
    引入代码来源:深入分析markdown-it-quote插件的魔法markdown-it-quote是一个用于markdown-it的插件,支持多种代码围栏功能。这是SourceCodeTrace项目之一,提供一种MarkdownFence的解析方案,包括对代码块的引用、高亮、链接等功能。SourceCodeTraceProject帮助您在博客、......