gradle 自定义插件

gradle自定义规则有:
目录规则树 默认是src-> main
resources就只用这样
properties里面写类名:
格式: implementation-class=com.allen.rujews.plugins.allen

liuhailongdeMacBook-Air:allen liuhailong$ tree
.
├── build.gradle
└── src
    └── main
        ├── groovy
        │?? └── com
        │??     └── allen
        │??         └── rujews
        │??             └── plugins
        │??                 └── allen.groovy
        └── resources
            └── META-INF
                └── gradle-plugins
                    └── com.github.rujews.plugins.allen.properties

10 directories, 3 files
liuhailongdeMacBook-Air:allen liuhailong$ cat /Users/liuhailong/Desktop/testdradle/allen/src/main/resources/META-INF/gradle-plugins/com.github.rujews.plugins.allen.properties
implementation-class=com.allen.rujews.plugins.allen
liuhailongdeMacBook-Air:allen liuhailong$ 

写插件语言 groovy (不是必须)
必须实现 apply接口
//allen.groovy

package com.allen.rujews.plugins

import org.gradle.api.Plugin
import org.gradle.api.Project

class allen implements Plugin<Project>{

    @Override
    void apply(Project target) {
        target.task(‘allen‘) << {
            println "fuck必须实现apply 也就是 apply plugin:时会调用"
        }
    }
}

//build.gradle

apply plugin: ‘maven‘
apply plugin: ‘groovy‘
dependencies {
//指定编译插件需要的依赖
implementation gradleApi()
implementation localGroovy()
}
//生成插件的task
uploadArchives {
repositories {
mavenDeployer {
        //我们发布到本地的地址,可以发布到jcenter上,具体可google下相关教程
        repository(url: uri(‘./allen‘))
        }
    }
}

运行命令:gradle uploadArchives

liuhailongdeMacBook-Air:allen liuhailong$ gradle uploadArchives

BUILD SUCCESSFUL in 2s
4 actionable tasks: 4 executed
liuhailongdeMacBook-Air:allen liuhailong$ 



使用自定义的插件

//编译插件
/*
    apply plugin: ‘maven‘
    apply plugin: ‘groovy‘
    dependencies {
        //指定编译插件需要的依赖
        implementation gradleApi()
        implementation localGroovy()
    }
    //生成插件的task
    uploadArchives {
        repositories {
            mavenDeployer {
                    //我们发布到本地的地址,可以发布到jcenter上,具体可google下相关教程
                    repository(url: uri(‘./allen‘))
                    }
         }
    }
*/
//使用插件
buildscript {
    dependencies {
    classpath files(‘build/libs/allen.jar‘)
    }
}
apply plugin: ‘groovy‘
apply plugin: ‘com.allen.rujews.plugins.allen‘

dependencies {
    compile gradleApi()
    compile localGroovy()
}

命令:gradle allen

liuhailongdeMacBook-Air:allen liuhailong$ gradle allen

> Task :allen
fuck必须实现apply 也就是 apply plugin:时会调用

Deprecated Gradle features were used in this build, making it incompatible with Gradle 5.0.
Use ‘--warning-mode all‘ to show the individual deprecation warnings.
See https://docs.gradle.org/4.10/userguide/command_line_interface.html#sec:command_line_warnings

BUILD SUCCESSFUL in 0s
1 actionable task: 1 executed
liuhailongdeMacBook-Air:allen liuhailong$ cat build.gradle
//编译插件
/*
    apply plugin: ‘maven‘
    apply plugin: ‘groovy‘
    dependencies {
        //指定编译插件需要的依赖
        implementation gradleApi()
        implementation localGroovy()
    }
    //生成插件的task
    uploadArchives {
        repositories {
            mavenDeployer {
                    //我们发布到本地的地址,可以发布到jcenter上,具体可google下相关教程
                    repository(url: uri(‘./allen‘))
                    }
         }
    } //编译插件
*/
//使用插件
buildscript {
    dependencies {
    classpath files(‘build/libs/allen.jar‘)
    }
}
apply plugin: ‘groovy‘
apply plugin: ‘com.allen.rujews.plugins.allen‘

dependencies {
    compile gradleApi()
    compile localGroovy()
}

liuhailongdeMacBook-Air:allen liuhailong$ 

原文地址:http://blog.51cto.com/haidragon/2174472

时间: 2024-10-13 02:13:22

gradle 自定义插件的相关文章

Gradle自定义插件

Gradle自定义插件 在Gradle中创建自定义插件,Gradle提供了三种方式: 在build.gradle脚本中直接使用 在buildSrc中使用 在独立Module中使用 开发Gradle插件可以在IDEA中进行开发,也可以在Android Studio中进行开发,它们唯一的不同,就是IDEA提供了Gradle开发的插件,比较方便创建文件和目录,而Android Studio中,开发者需要手动创建(但实际上,这些目录并不多,也不复杂,完全可以手动创建). 在项目中使用 在Android

gradle 自定义插件 下载配置文件

1.新建Gradle项目: 2.建立src/main/groovy目录,并添加如下代码: ConfigPlugin.groovy package com.wemall.config import org.gradle.api.Plugin import org.gradle.api.Project class ConfigPlugin implements Plugin<Project> { void apply(Project project) { project.extensions.cr

gradle ssh 插件

org.hidetake.ssh Gradle SSH Plugin is a Gradle plugin which provides remote command execution and file transfer features. https://gradle-ssh-plugin.github.io 远程部署插件, 可以远程传输文件,也可以执行远程shell命令 配置build.gradle文件 插件官方网址https://gradle-ssh-plugin.github.io/g

cordova3.X 运用grunt生成plugin自定义插件骨架

Cordova提供了一组设备相关的API,通过这组API,移动应用能够以JavaScript访问原生的设备功能,如摄像头.麦克风等.Cordova还提供了一组统一的JavaScript类库,以及为这些类库所用的设备相关的原生后台代码. 一.安装cordova npm install -g cordova 二.创建项目 cordova create hello com.blue.sky.hybrid.app.hello HelloWorld 三.添加平台支持 cd hello cordova pl

cordova 自定义插件

cordova /phonegap 自定义插件 在使用cordova 的过程中,虽然官方提供的插件以及其他人开源的插件较多.但有时为了实现某种需求,还是需要自己编写插件. 以前总是会手动的配置cordova插件,具体可以参考phonegap手动配置插件 今天主要是介绍官方提供的plugman来创建插件 pluman的使用 首先,安装plumam npm install -g plugman 安装完之后,就可以创建plugin plugman create --name <pluginName>

BrnShop开源网上商城第四讲:自定义插件

重要通知:BrnShop企业版NOSQL设计(基于Redis)已经开源!源码内置于最新版的BrnShop中,感兴趣的园友可以去下载来看看.官网地址:www.brnshop.com. 好了现在进入今天的正题:自定义插件.上一讲中我们已经阐述了BrnShop插件的工作机制,现在我们详细介绍下如何自定义插件.首先BrnShop的插件从功能上分为三类,分别是: 开放授权插件(OAuth) 支付插件 配送插件 对应的接口文件(注:位于BrnShop.Core项目的Plugin/Base文件夹中)依次如下:

ElasticSearch 5.4 自定义插件

ElasticSearch 做为数据仓库处理速度确实很强,但是很多和业务相关的函数ElasticSearch怎么支持的,通过查询发现,ElasticSearch支持自定义插件(相当于自定义函数),通过自定义插件,开发人员可以实现各种业务相关的函数定义供相关人员使用. 1.   ElasticSearch  自定义插件编写 后续补充. 2.  ElasticSearch  自定义插件打包 2.1  自定义插件开发完成后,需要增加“plugin-descriptor.properties”配置文件,

Gradle自定义property

?Gradle自定义property 设置和读取Project的Property是使用Gradle的一个很重要的方面.比如,很多Plugin都会向Project中加入额外的Property. 在使用这些Plugin时,我们需要对这些Property进行赋值. Gradle在默认情况下已经为Project定义了很多Property,其中比较常用的有: project:Project本身 name:Project的名字 path:Project的绝对路径 description:Project的描述

jquery自定义插件——window的实现

本例子实现弹窗的效果: 1.jquery.show.js /* * 开发者:lzugis * 开发时间:2014年6月10日 * 实现功能:点击在鼠标位置显示div * 版本序号:1.0 */ (function($){ $.fn.showDIV = function(options){ var defaults = {}; var options = $.extend(defaults, options); var showdiv=$(this); var close, title, cont