《Gradle权威指南》--Gradle插件
No1:
应用插件
apply plugin:'java'
apply plugin:org.gradle.api.plugins.JavaPlugin
apply plugin:JavaPlugin
这三种写法等价
注:‘java‘是一个plugin id
No2:
应用脚本插件
//version.gradle
ext{
versionName='1.0.0'
versionCode=1
} //build.gradle
apply from:'version.gradle'
task ex52PrintlnTask<<{
println "App版本是:${versionName},版本号是:${versionCode}"
}
结果

No3:
//apply方法
void apply(Map<String,?> options);
void apply(Closure closure);
void apply(Action<? super ObjectConfigurationAction> action);
//闭包方式
apply{
plugin 'java'
}
//Action方式
apply(new Action<ObjectConfigurationAction>(){
@Override
void execute(ObjectConfigurationAction objectConfigurationAction){
objectConfigurationAction.plugin('java')
}
})
No4:
应用第三方发布的插件
buildscript{
repositoried{
jcenter()
}
dependencies{
classpath 'com.android.tools.build:gradle:1.5.0'
}
}
apply plugin: 'com.android.application'
No5:
使用plugins DSL应用插件
plugins{
id 'java'
}
plugins{
id "org.sonarqube" version "1.2"
}
No6:
自定义插件
apply plugin:Ex53CustomPlugin
class Ex53CustomPlugin implements Plugin<Project>{
void apply(Project project){
project.task('ex53CustomTask')<<{
println "这是一个通过自定义插件方式创建的任务"
}
}
}
结果

注:自定义的插件必须要实现Plugin接口,这个接口只有一个apply方法,该方法在插件被应用的时候执行
No7:
创建一个Groovy工程
apply plugin:'groovy'
dependencies{
compile gradleApi()
compile localGroovy()
}
插件类
package com.github.rujews.plugins import org.gradle.api.Plugin
import org.gradle.api.Project class Ex53CustomPlugin implements Plugin<Project>{
@Override
void apply(Project target){
target.task('ex53CustomTask')<<{
println "这是一个通过自定义插件方式创建的任务"
}
}
}
在src/main/resources/META-INF/gradle-plugins/目录下新建一个名字为plugin id的properties的文件
implementation-class=com.github.rujews.plugins.Ex53CustomPlugin
其他地方调用
buildscript{
dependencies{
classpath files('libs/example53.jar')
}
}
apply plugin: 'com.github.rujews.plugins.ex53customplugin'
《Gradle权威指南》--Gradle插件的更多相关文章
- 读书笔记--Android Gradle权威指南(下)
前言 最近看了一本书<Android Gradle 权威指南>,收获挺多,就想着来记录一些读书笔记,方便后续查阅. 本篇内容是基于上一篇:读书笔记--Android Gradle权威指南( ...
- 读书笔记--Android Gradle权威指南(上)
本篇文章已授权微信公众号 dasu_Android(大苏)独家发布 最近看了一本书<Android Gradle 权威指南>,对于 Gradle 理解又更深了,但不想过段时间就又忘光了,所 ...
- Java Gradle入门指南之插件管理(类型、导入及java plugin使用)
上一篇随笔介绍了如何使用Gradle内建任务,介绍了自定义Gradle任务类的三种方法(build文件,buildSrc文件夹.新建groovy项目),一个任务是一个原子操作,即不可分割的.项 ...
- 《gradle权威指南》--Gradle入门
No1: Window下搭建Gradle:添加GRADLE_HOME环境变量,然后把GRADLE_HOME\bin添加到PATH系统变量里保存即可.完成后打开CMD,运行gradle -v来验证 No ...
- 《Gradle权威指南》--Android Gradle插件
No1: Android Gradle插件分类 App插件id:com.android.application Library插件id:com.android.library Test插件id:com ...
- 《Gradle权威指南》--Java Gradle插件
No1: dependencies{ compile group: 'com.squareup.okhttp3',name:'okhttp',version:'3.0.1' } //缩写 depend ...
- 《Gradle权威指南》--Android Gradle多渠道构建
No1: Build Variant = Build Type + Product Flavor Build Variant:构建的产物 Build Type:构建的类型 Product Flavor ...
- 《Gradle权威指南》--Android Gradle多项目构建
No1: Android多项目设置 目录结构: MyProject/ setting.gradle app/ build.gradle libraries/ lib1/ build.gradle li ...
- 《Gradle权威指南》--Android Gradle NDK支持
No1: 在根项目下的local.properties文件中配置 sdk.dir=/home/frame/android/android-sdk ndk.dir=/home/frame/android ...
随机推荐
- Django 2.0 学习(12):Django 模板语法
Django 模板语法 一.模板 只要是在html里面有模板语法就不是html文件了,这样的文件就叫做模板. 二.模板语法 模板语法变量:{{ }} 在Django模板中遍历复杂数据结构的关键是句点字 ...
- strstr函数字符串匹配问题
题目链接:http://acm.sdut.edu.cn/onlinejudge2/index.php/Home/Index/problemdetail/pid/2772.html AC代码: #inc ...
- 《Joint Face Detection and Alignment using Multi-task Cascaded Convolutional Networks》
<Joint Face Detection and Alignment using Multi-task Cascaded Convolutional Networks> 论文主要的三个贡 ...
- 嵌入式linux系统中,lsusb出现unable to initialize libusb: -99 解决办法 【转】
转自:http://cpbest.blog.163.com/blog/static/41241519201111575726966/ libusb是linux系统中,提供给用户空间访问usb设备的AP ...
- 蓝牙Bluetooth技术手册规范下载【转】
蓝牙Bluetooth技术手册规范下载 http://www.crifan.com/summary_bluetooth_specification_download/ [背景] 之前就已经整理和转帖了 ...
- C++:vector的用法详解
原文地址:http://blog.csdn.net/hancunai0017/article/details/7032383 vector(向量): C++中的一种数据结构,确切的说是一个类.它相当于 ...
- linux下混杂模式
混杂模式介绍: 混杂模式就是接收所有经过网卡的数据包,包括不是发给本机的包,默认情况下网卡只把发给本机的包(包括广播包)传递给上层程序,其它的包一律丢弃:简单的讲,混杂模式就是指网卡能接受所有通过它的 ...
- Nodejs 实现ESL内联FreeSWITCH设定说明
一.背景说明: SIP Server IP (Centos):192.168.11.61 ,服务器IP(Windows):192.168.11.19 二.目的: 能够从192.168.11.19上通 ...
- 09-伪数组 arguments
arguments代表的是实参.有个讲究的地方是:arguments只在函数中使用. (1)返回函数实参的个数:arguments.length 例子: fn(2,4); fn(2,4,6); fn( ...
- 使用 CSS overscroll-behavior 控制滚动行为:自定义下拉刷新和溢出效果
CSS 的新属性 overscroll-behavior 允许开发者覆盖默认的浏览器滚动行为,一般用在滚动到顶部或者底部. 背景 滚动边界和滚动链接(boundary & chaining) ...