《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 ...
随机推荐
- luogu P3960 列队
传送门 因为\(Splay\)可以\(O(logn)\)维护区间,所以直接对每一行维护第一个元素到倒数第二个元素的\(Splay\),最后一列维护一个\(Splay\),每次把选出来的点删掉,然后把那 ...
- POJ2031 Building a Space Station【最小生成树】
题意: 就是给出三维坐标系上的一些球的球心坐标和其半径,搭建通路,使得他们能够相互连通.如果两个球有重叠的部分则算为已连通,无需再搭桥.求搭建通路的最小边长总和是多少. 思路: 先处理空间点之间的距离 ...
- 第15月第6天 ios UIScrollView不能响应TouchesBegin
1. 1:@property MyScrollView *scrollView; 2:给MyScrollView,增加类别:MyScrollView+Touch 3:在类别里实现下面三个方法: @im ...
- mysql 案例 ~ 瘦身mysql系列(1)
一 简介:这一系列我们要进行如何瘦身mysql 二 目的:通过提高CPU利用率和节约成本,降低数据库容量及I/O负载,从而使数据吞吐率得到显著提高 三 方法: 利用innodb的COMPRESSED ...
- CNN可解释
1 http://bindog.github.io/blog/2018/02/10/model-explanation/ http://www.sohu.com/a/216216094_473283 ...
- linux软链接和硬链接的区别
硬链接:ln 3.txt 4 相当于把源文件复制了一份 软连接:ln -s 3.txt 5 相当于快捷方式 改动源文件4.5同时更新,删除3.txt ,5不存在,4存在的.
- Bootstrap3.0学习第四轮(排版)
详情请查看http://aehyok.com/Blog/Detail/10.html 个人网站地址:aehyok.com QQ 技术群号:206058845,验证码为:aehyok 本文文章链接:ht ...
- 使用C#进行应用程序间通信(WPF与Unity通信)
首先程序主体来自网络,我只是应用在我自己的项目中,其中出现了一系列的问题,有些已经解决,有些使用了折中的方案,如果有大神能够给予知道,感激不尽! 首先是发送端程序: 这是我的程序任务执行主界面,此处已 ...
- 信息检索(IR)的评价指标介绍 - 准确率、召回率、F1、mAP、ROC、AUC
原文地址:http://blog.csdn.net/pkueecser/article/details/8229166 在信息检索.分类体系中,有一系列的指标,搞清楚这些指标对于评价检索和分类性能非常 ...
- linux下使用screen和ping命令对网络质量进行监控
linux下使用screen和ping命令对网络质量进行监控 场景:应用连接云服务器经常偶尔会出现连接不上的情况,android和IOS端连接的时候也会出现tcp延时5秒以上,现在想验证是否是云服务商 ...