Gradle的使用

AndroidStudio的Terminal中
http://stormzhang.com/devtools/2015/01/05/android-studio-tutorial5/
[TOC]

==========gradle 命令=======

1.  gradlew -v     // 查看当前gradlew版本信息  如果没有 会去下载对应的gradlew版本
2.  gradlew clean    // 会去 jcenter去下载对应的依赖的库  -清除生成的apk
3.  gradlew build    // 用来编译生成APK文件  检查依赖并编译打包  gradlew build 命令把debug、release环境的包都打出来
                     // gradlew build --info  能查看到详细信息
                     //  gradlew build --stacktrace 能看到异常堆栈
                     //  gradlew build --bebug  能看比info更多的信息
4.gradlew assemble     // -为所有构建类型创建apk
$  可分别构建release 和 debug 以及各个不同渠道的包
                       //  gradlew assembleDebug               //    命令把debug环境的包编译出来
                      //   gradlew assembleRelease             //  命令把release环境的包编译出来
                     //  gradlew assembleBaiduRelease    需要配置百度的相关release的任务等 才能执行
5.gradlew check     // 运行所有的检查,比如说Android Lint,如果发现问题可终止任务
6.gradlew tasks --all  // 【列出当前所有的任务】  Gradle默认为我们提供了dependencies、projects和properties等Task
   gradle tasks     //【常用的Task】 查看Project的Properties   显示当前Project中定义的所有Task等
7.gradle properties     // 查看当前系统定义的 properties属性
8.gradle wrapper     // 【gradle 内置的生成wrapper的task 】  
                    // 执行后会生成 gradlew 这个封装了gradle的工具 windows linux gradle文件夹以及下面的文件
gradle-wrapper.properties  文件内容
distributionBase=GRADLE_USER_HOME    【下载的gradle压缩包解压后存储的主目录】
distributionPath=wrapper/dists  【相对于distributionBase的解压后的gradle压缩包的路径】
 【gradle压缩包的下载地址,现在这个项目将要依赖的gradle的版本】
distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-bin.zip
zipStoreBase=GRADLE_USER_HOME  【同distributionBase,只不过是存放zip压缩包的】
zipStorePath=wrapper/dists  【同distributionPath,只不过是存放zip压缩包的】

==========自定义build.gradle=======

task helloworld{
    doLast{            //【 doLast{} 表示在任务helloworld 执行完最后执行代码块代码 】
        println'Hello World!'
        project.version = 1
        println project.version
    }
}

task helloworld2 <<{   //【 << 表示用于向任务中添加执行代码 】
    println "AAAAAAAAAAA"
}

task copyFile(type: Copy) {  // 【(type: Copy) 表示这是一个拷贝任务 from表示当前目录的源文件夹  into 目的文件夹 】
   from 'xml'
   into 'destination'
}



helloworld.dependsOn helloworld2    //【依赖声明  表示 要执行任务helloworld   必须要先执行 任务 helloworld2 】

一:
build.gradle文件 task(),apply()和configuration()方法 Gradle会自动将调用对象设置成当前Project

二:
configurations()方法(它的作用我们将在后面的文章中讲到),
该方法实际上会将所跟闭包的delegate设置成ConfigurationContainer,然后在该ConfigurationContainer上执行闭包中的代码

三:
dependencies()方法,该方法会将所跟闭包的delegate设置成DependencyHandler。

四:
Project还定义了configure(Object object,Closure configureClosure)方法,
该方法是专门用来配置对象的(比如Task),它会将configureClosure的delegate设置成object
之后configureClosure中的执行代码其实是在object上执行的

UP-TO-DATE:
如果多次执行一个Task时的输入和输出是一样的,那么我们便可以认为这样的Task是没有必要重复执行的
在增量式构建中,我们为每个Task定义输入(inputs)和输入(outputs),如果在执行一个Task时,
如果它的输入和输出与前一次执行时没有发生变化,
那么Gradle便会认为该Task是最新的(UP-TO-DATE),因此Gradle将不予执行

===Task属性之 inputs和outputs属性=========

每个Task都拥有inputs和outputs属性,他们的类型分别为TaskInputs和TaskOutputs

task filetest {
   def sources = fileTree('sourceDir')    // 定义文件夹

   def destination = file('destination.txt')  // 定义文件

   doLast {
      destination.withPrintWriter { writer ->   // 对文件 file withPrintWriter 添加闭包
         sources.each {source ->          //sources.each 相当于遍历for循环  source 代表每个文件
            println source             // 打印出source 文件的路径
            println source.text       // 打印出source 文件内容
            writer.println source.text   // 往 destination.txt文件的writer 写入内容
         }
      }
   }
}

打印内容:
C:\Users\Administrator\Desktop\C_test\test_gradle\sourceDir\1.txt
111111111111
C:\Users\Administrator\Desktop\C_test\test_gradle\sourceDir\2.txt
2222222222
C:\Users\Administrator\Desktop\C_test\test_gradle\sourceDir\3.txt
3333333333
C:\Users\Administrator\Desktop\C_test\test_gradle\sourceDir\4.txt
4444444
C:\Users\Administrator\Desktop\C_test\test_gradle\sourceDir\5.txt
5555
1 actionable task: 1 executed

==========自定义属性设置====

1.build.gardlew文件中 自定义属性
自定义属性在build.gardlew 文件中

ext.zukgit = "zukgit hello !"   // 定义自定义变量方式一  是在Project下的属性  

ext {   // 定义自定义变量方式二
   zukgit1 = "zzj is zukgit1"
}

task helloworld8 << {
   println zukgit     // 访问自定义变量  同    project.zukgit
   println project.zukgit1
}

2.使用 gradlew -P 命令来从shell传递属性值
使用 gradlew -P 来从外部传入自定义变量值

// gradle -Pvalue="this is Value!" helloworld9
task helloworld9 << {
   println value
}

3.使用 gradlew -Dorg.gradle.project.【必须带有Dorg.gradle.project.前缀 】 命令来设置系统属性值 ,以便程序动态获取

gradle -Dorg.gradle.project.value10="this.is.value10" helloworld10
task helloworld10 << {
   println value10
}
  1. 通过环境变量设置Property
    需要我们遵循一些约定:在定义环境变量时,每一个Property都需要以“ORG_GRADLE_PROJECT_”为前缀:
//【Shell下运行 export 是Linux命令 用于设置环境变量】
export ORG_GRADLE_PROJECT_value11="@@this is ORG_GRADLE_PROJECT_value11!!"  

//【Shell下运行 set 是windows命令 用于设置环境变量】
SET ORG_GRADLE_PROJECT_value11="@@this is ORG_GRADLE_PROJECT_value11!!" 

task helloworld11 << {
   println value11
}

============Gradle 插件的使用=========

Gradle最常用的Plugin便是java Plugin
java Plugin并没有什么特别的地方,只是向Project中引入了多个Task和Property
当然,java Plugin也有比较与众不同的地方,其中之一便是它在项目中引入了构建生命周期的概念,就像Maven一样。
但是,和Maven不同的是,Gradle的项目构建生命周期并不是Gradle的内建机制,而是由Plugin自己引入的。

—————Java Plugin 引入的task

:compileJava
:
:processResources
:
:classes
:
:jar
:
:assemble
:
:compileTestJava
:
:processTestResources
:
:testClasses
:
:test
:
:check
:
:build

—————Java Plugin 引入的Properties属性
sourceCompatibility———-用于指定在编译Java源文件时所使用的Java版本
archivesBaseName——————-用于指定打包成Jar文件时的文件名称。
source set ——源码集 Java Plugin 概念

========Gradle 的 依赖管理=============

一个Java项目总会依赖于第三方,要么是一个第三方类库,比如Apache commons;
要么是你自己开发的另外一个Java项目,比如你的web项目依赖于另一个核心的业务项目。
通常来说,这种依赖的表示形式都是将第三方的Jar文件放在自己项目的classpath下,
要么是编译时的classpath,要么是运行时的classpath。

在声明对第三方类库的依赖时,我们需要告诉Gradle在什么地方去获取这些依赖,即配置Gradle的Repository

配置好依赖之后,Gradle会自动地下载这些依赖到本地。
Gradle可以使用Maven和jcenter的Repository,同时它还可以使用本地文件系统作为Repository

build.gradle 下 配置jcenter() 的Repository

repositories {
   jcenter()
}

Gradle将对依赖进行分组,比如编译Java时使用的是这组依赖,运行Java时又可以使用另一组依赖。
每一组依赖称为一个Configuration,在声明依赖时,我们实际上是在设置不同的Configuration。
值得一提的是,将依赖称为Configuration并不是一个好的名字,更好的应该叫作诸如“DependencyGroup”之类的

要定义一个Configuration,我们可以通过以下方式完成:

configurations {

   myDependency
    // 定义了一个名为myDependency的Configuration
}

//我们可以通过dependencies()方法向myDependency中加入实际的依赖项:
//  我们将Apache的commons加入了myDependency中
dependencies {

   myDependency 'org.apache.commons:commons-lang3:3.0'
  // 向 myDependency 加入 依赖项
}

//如果有Task需要将Apache commons加入到classpath中,我们可以通过以下方式进行获取:

task helloworld12 << {  // 测试依赖项
   println configurations.myDependency.asPath
}
//执行 gradle helloworld12  会去仓库  jcenter()
 //下载依赖 并打印 下载好的依赖文件的路径
//C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\org.apache.commons\commons-lang3\3.0\8873bd0bb5cb9ee37f1b04578eb7e26fcdd44cb0\commons-lang3-3.0.jar


//------------默认定义的Configuration  (DependencyGroup)

dependencies {

   compile 'org.slf4j:slf4j-log4j12:1.7.2'
   testCompile 'junit:junit:4.8.2'
}
}

我们并没有定义名为compile和testCompile的Configuration,但是直接使用了,这是这么回事呢?
原因在于,java Plugin会自动定义compile和testCompile这两个Configuration,分别用于编译Java源文件和编译Java测试源文件
另外,java Plugin还定义了runtime和testRuntime这两个Configuration,分别用于在程序运行和测试运行时加入所配置的依赖。

//如果ProjectA的compileJava依赖于ProjectB,那么可以在ProjectA中声明如下:
dependencies {

   compile project(':ProjectB')
}
}


//对于本地文件系统中的Jar文件,我们可以通过以下方式声明对其的依赖:
dependencies {

   compile files('spring-core.jar', 'spring-aap.jar')
  // 本地文件 'spring-core.jar', 'spring-aap.jar' 依赖
   compile fileTree(dir: 'deps', include: '*.jar')
}  // 添加本地文件夹 deps/ 下所有 jar包的依赖
}

===多Project管理=================

在root根目录下的 build.gradle 文件夹中可以设置 应用于所有Project的操作
allprojects {   // Project 的为所有的Project起作用的  方法 
    repositories {   // 为所有的Project 包括root-project  指定 repositories仓库使用 jcenter()仓库
        jcenter()
        maven {
            url "https://jitpack.io"
        }
    }
}


subprojects {
    // Project 的为所有的子Project 不包括本身 起作用的  方法 
   task subTask << {

      println project.name

   }

}



   //以下脚本向sub-project1中加入了名为demoTask的Task,在执行“gradle demoTask”时
project(':demo') {  // 在 root的 build.gradle中 添加对 子project的任务 配置等
    task demoTask << {
        println 'add  demoTask in root build.gradle'
    }
}

=========================自定义Task类型=================
一旦有了多个Project,他们之间便会存在着依赖关系。
Gradle的Project之间的依赖关系是基于Task的,而不是整个Project的。
Gradle中的Task要么是由不同的Plugin引入的,要么是我们自己在build.gradle文件中直接创建的。
在默认情况下,我们所创建的Task是DefaultTask类型,该类型是一个非常通用的Task类型,
而在有些时候,我们希望创建一些具有特定功能的Task,比如Copy和Jar等。还有时候,我们希望定义自己创建的Task类型
在Gradle中,我们有3种方法可以自定义Task类型。

  1. 在build.gradle文件中直接定义
class HelloWorldTask extends DefaultTask {  // 自定义Task类型 方式一
    @Optional  // message被标记为@Optional,表示在配置该Task时,message是可选的
    String message = 'I am xxx'

    // @TaskAction表示该Task要执行的动作,即在调用该Task时,hello()方法将被执行
    @TaskAction
    def hello(){
        println "hello world $message"
    }
}

task helloworld13(type:HelloWorldTask){  // 执行  gradle  helloworld13 使用修改了message信息后执行
   message ="helloworld13 "
}

task helloworld14(type:HelloWorldTask) // 执行  gradle  helloworld14   使用默认的message信息后执行
  1. 使用 apply 来引入自定义Task ,同时 在另外的文件 定义实现 自定义类型
    我们在build.gradle中直接定义了Task的类型,这样将Task的定义和使用混在一起。
    在需要定义的Task类型不多时,我们可以采用这种方法,但是在项目中存在大量的自定义Task类型时,这就不见得是中好的做法了。
    一种改进方法是在另外的一个gradle文件中定义这些Task,然后再apply到build.gradle文件中
    目录下创建HelloWorldTask.groovy文件,对HelloWorldTask的定义转移到该文件中
package davenkin
import org.gradle.api.*
import org.gradle.api.tasks.*

class HelloWorldTask extends DefaultTask {
    @Optional
    String message = 'I am davenkin'

    @TaskAction
    def hello(){
        println "hello world $message"
    }
}

build.gradlew 中加入包名路径依赖
task hello(type:davenkin.HelloWorldTask)

task hello1(type:davenkin.HelloWorldTask){

    message ="I am a programmer"
}
}
  1. 在单独的项目中定义Task类型
    如果我们希望所定义的Task能够用在另外的项目中,此时我们可以将Task的定义放在单独的工程中,
    然后在所有使用Task的工程中通过声明依赖的方式引入这些Task。

创建另外一个项目,将 .groovy文件 考到新建项目中,由于该项目定义Task的文件是用groovy写的,
因此我们需要在该项目的build.gradle文件中引入groovy Plugin。另外,由于该项目的输出需要被其他项目所使用
因此我们还需要将其上传到repository中,
在本例中,我们将该项目生成的包含了Task定义的jar文件上传到了本地的文件系统中。最终的build.gradle文件如下

apply plugin: 'groovy'   // 解析groovy文件用到
apply plugin: 'maven'  // 上传自定义任务 到maven仓库时 用到
version = '1.0'   // 版本编号
group = 'davenkin'  // groupID  组编号
archivesBaseName = 'hellotask'  // 自定义任务名称   groupID:archivesBaseName:version  组成了唯一识别符

repositories.mavenCentral()

dependencies {
    compile gradleApi()
    groovy localGroovy()
}
uploadArchives {
// 上传任务 执行“gradle uploadArchives”,所生成的jar文件将被上传到上级目录的lib(../lib)文件夹中
    repositories.mavenDeployer {   
        repository(url: 'file:../lib')
    }
}

—————在其他项目引用的方式————
客户端的build.gradle文件可以做以下配置

buildscript {
    repositories {
  // 指定仓库
        maven {

            url 'file:../lib'
        }
    }

    dependencies {
   // 增加依赖关系   groupID:archivesBaseName:version
        classpath group: 'davenkin', name: 'hellotask', version: '1.0'
}


}


task hello(type: davenkin.HelloWorldTask)

=======自定义Plugin类型=================

在Plugin中,我们可以向Project中加入新的Task,定义configurations和property等。
我们3种方法可以自定义Plugin,这些方法和自定义Task类型的3种方法相似

1.在build.gradle文件中直接定义Plugin

apply plugin: DateAndTimePlugin


dateAndTime {  // 对 project添的属性dateAndTime进行重新配置
    timeFormat = 'HH:mm:ss.SSS'
    dateFormat = 'MM/dd/yyyy'
}

class DateAndTimePlugin implements Plugin<Project> {
    void apply(Project project) {

// 向project添加property属性dateAndTime 值为DateAndTimePluginExtension
        project.extensions.create("dateAndTime", DateAndTimePluginExtension) 

        project.task('showTime') << {
            println "Current time is " + new Date().format(project.dateAndTime.timeFormat)
        }

        project.tasks.create('showDate') << {
            println "Current date is " + new Date().format(project.dateAndTime.dateFormat)
        }
    }
}



class DateAndTimePluginExtension {
    String timeFormat = "MM/dd/yyyyHH:mm:ss.SSS"
    String dateFormat = "yyyy-MM-dd"
}

每一个自定义的Plugin都需要实现Plugin接口,事实上,除了给Project编写Plugin之外,我们还可以为其他Gradle类编写Plugin
我们在DateAndTimePlugin中向Project添加了2个Task,一个名为showTime,一个名为showDate
在DateAndTimePlugin中,我们向Project中定义了一个名为dateAndTime的extension,并向其中加入了2个Property,
分别为timeFormat和dateFormat,他们又分别用于showTime和showDate
在使用该Plugin时,我们可以通过以下方式对这两个Property进行重新配置

dateAndTime {
    timeFormat = 'HH:mm:ss.SSS'
    dateFormat = 'MM/dd/yyyy'
}
  1. 在当前工程中定义Plugin 创建 groovy文件夹进行定义
    在当前工程中的buildSrc/src/main/groovy/xxx 目录下创建DateAndTimePlugin.groovy文件,
    将build.gradle中定义DateAndTimePlugin的代码提取到给文件中

build.gradle使用时 使用包名+类名

apply plugin: davenkin.DateAndTimePlugin
dateAndTime {
   // 重置dateAndTime的值
    timeFormat = 'HH:mm:ss.SSS'
    dateFormat = 'MM/dd/yyyy'
}
}

3.在单独的项目中创建Plugin
新建一个项目,将groovy文件拷贝到该项目下,定义该项目的build.gradle文件如下:

apply plugin: 'groovy'
apply plugin: 'maven'

version = 1.0
group = 'davenkin'
archivesBaseName = 'datetimeplugin'
repositories.mavenCentral()

dependencies {
    compile gradleApi()
    groovy localGroovy()
}

uploadArchives {
    repositories.mavenDeployer {
        repository(url: 'file:../lib')
    }
}

此外,我们还可以为该Plugin重新命名,如果我们希望将该Plugin命名为time,
那么我们需要在src/main/resources/META-INF/gradle-plugins目录下创建名为time.properties的文件,内容如下:
time.properties
implementation-class = davenkin.DateAndTimePlugin

—————在其他项目引用的方式————
客户端的build.gradle文件可以做以下配置

buildscript {
    repositories {
        maven {
            url 'file:../lib'    // 配置repository以执行lib目录
        } }
    dependencies {
        classpath group: 'davenkin', name: 'datetimeplugin',
                version: '1.0'

}

apply plugin: 'time'  // 使用别名 进行了 apply plugin 引用
dateAndTime {
    timeFormat = 'HH:mm:ss.SSS'
    dateFormat = 'MM/dd/yyyy'
}
}

==============================代码=============================
build.gradle

task helloworld1{
    doLast{            //【 doLast{} 表示在任务helloworld 执行完最后执行代码块代码 】
        println'helloworld1'
        project.version = 1
        //println project.version
    }

    doFirst {
    println 'helloworld1-doFirst'
    }

}

task helloworld2 <<{   //【 << 表示用于向任务中添加执行代码  效果同 doLast{ }  】
    println "helloworld2"
}


task helloworld3(dependsOn: helloworld2) <<{  // 声明依赖关系 可以在定义任务时就 使用dependsOn指明 依赖任务
   println "helloworld3"
}


task copyFile(type: Copy) {  // 【(type: Copy) 表示这是一个拷贝任务 from表示当前目录的源文件夹  into 目的文件夹 】
   from 'xml'
   into 'destination'
}


task showTasks <<{
   println tasks.class
   println tasks.size()
}


tasks.create(name: 'helloworld4') << {  //【另一种方式创建 task】
   println 'helloworld4'
}

helloworld1.dependsOn helloworld2    //【依赖声明  表示 要执行任务helloworld1   必须要先执行 任务 helloworld2 】


// 配置Task  一个Task除了执行操作之外,还可以包含多个Property属性
// Gradle为每个Task默认定义的 Property ,比如description,logger等


tasks.create(name: 'helloworld5') << {  //【另一种方式创建 task】
 description = "description value  = this is helloworld5" 
   println description
}

//  如果去掉 <<  则会输出  Configure project :  null   即description 为null
// 输出 description value  = this is helloworld6 
task helloworld6 << {
   println description
}



// Gradle在执行Task时分为两个阶段,首先是配置阶段 扫描全局 闭包被执行  ,然后才是实际执行阶段 执行打印
helloworld6 {  // 通过 闭包的方式为 task  helloworld6 的 Property值 description 进行赋值
description = "description value  = this is helloworld6"
}

task helloworld7 << {
   println "helloworld7"
      println description
      println project.allprojects
}


configure(helloworld7,{
description = "20180402"
})

task filetest {
   def sources = fileTree('sourceDir')

   def destination = file('destination.txt')

   //inputs.dir sources
   //outputs.file destination

   doLast {
      destination.withPrintWriter { writer ->
         sources.each {source ->
            println source
            println source.text
            writer.println source.text
         }
      }
   }
}


ext.zukgit = "zukgit hello !"

ext {
   zukgit1 = "zzj is zukgit1"
}

task helloworld8 << {
   println zukgit
   println project.zukgit1
}


// gradle -Pvalue="this is Value!" helloworld9  从外部传进来
task helloworld9 << {
   println value
}

task helloworld10 << {
   println value10
}


//  export ORG_GRADLE_PROJECT_value11="@@this is ORG_GRADLE_PROJECT_value11!!"
//  SET ORG_GRADLE_PROJECT_value11="@@this is ORG_GRADLE_PROJECT_value11!!"

task helloworld11 << {
   println value11
}


configurations {

   myDependency
    // 定义了一个名为myDependency的Configuration
}


repositories {  // 指定依赖的仓库来源
   jcenter()
}


dependencies {

   myDependency 'org.apache.commons:commons-lang3:3.0'
  // 向 myDependency 加入 依赖项
}

task helloworld12 << {  // 测试依赖项
   println configurations.myDependency.asPath
}


allprojects {
   apply plugin: 'idea'


   task allTask << {
      println project.name
   }
}



class HelloWorldTask extends DefaultTask {  // 自定义Task类型 方式一
    @Optional  // message被标记为@Optional,表示在配置该Task时,message是可选的
    String message = 'I am xxx'

    // @TaskAction表示该Task要执行的动作,即在调用该Task时,hello()方法将被执行
    @TaskAction
    def hello(){
        println "hello world $message"
    }
}

task helloworld13(type:HelloWorldTask){
   message ="helloworld13 "
}

task helloworld14(type:HelloWorldTask)


task helloworld15(type:zukgit.HelloWorldTask1)

==========Android的Gradle构建中的所有任务Task==========

D:\version\androidxxx>.\gradlew task --all   【列出当前所有的任务】
Picked up _JAVA_OPTIONS: -Xmx512M
:tasks

    ------------------------------------------------------------
    All tasks runnable from root project
    ------------------------------------------------------------

    Android tasks
    -------------
    app:androidDependencies - Displays the Android dependencies of the project.
    extras:ShimmerAndroid:androidDependencies - Displays the Android dependencies of the project.
    app:signingReport - Displays the signing info for each variant.
    extras:ShimmerAndroid:signingReport - Displays the signing info for each variant.
    app:sourceSets - Prints out all the source sets defined in this project.
    extras:ShimmerAndroid:sourceSets - Prints out all the source sets defined in this project.

    Build tasks
    -----------
    app:assemble - Assembles all variants of all applications and secondary packages. [app:assembleDebug, app:assembleRelease]
    extras:ShimmerAndroid:assemble - Assembles all variants of all applications and secondary packages. [extras:ShimmerAndroid:assembleDebug, extras:ShimmerAndroid:
    assembleRelease]
    app:assembleAndroidTest - Assembles all the Test applications. [app:compileDebugAndroidTestSources]
    app:assembleDebugAndroidTest
    app:mergeDebugAndroidTestJniLibFolders
    app:packageDebugAndroidTest
    app:processDebugAndroidTestJavaRes
    app:transformClassesWithDexForDebugAndroidTest
    app:transformNative_libsWithMergeJniLibsForDebugAndroidTest
    app:transformResourcesWithMergeJavaResForDebugAndroidTest
    app:validateDebugSigning
    extras:ShimmerAndroid:assembleAndroidTest - Assembles all the Test applications.   [extras:ShimmerAndroid:compileDebugAndroidTestSources]
    extras:ShimmerAndroid:assembleDebugAndroidTest
    extras:ShimmerAndroid:mergeDebugAndroidTestJniLibFolders
    extras:ShimmerAndroid:packageDebugAndroidTest
    extras:ShimmerAndroid:processDebugAndroidTestJavaRes
    extras:ShimmerAndroid:transformClassesWithDexForDebugAndroidTest
    extras:ShimmerAndroid:transformNative_libsWithMergeJniLibsForDebugAndroidTest
    extras:ShimmerAndroid:transformResourcesWithMergeJavaResForDebugAndroidTest
    extras:ShimmerAndroid:validateDebugSigning
    app:assembleDebug - Assembles all Debug builds. [app:compileDebugSources, extras:ShimmerAndroid:bundleRelease]
    app:mergeDebugJniLibFolders
    app:packageDebug
    app:processDebugJavaRes
    app:transformClassesWithDexForDebug
    app:transformNative_libsWithMergeJniLibsForDebug
    app:transformResourcesWithMergeJavaResForDebug
    app:validateDebugSigning
    app:zipalignDebug
    extras:ShimmerAndroid:assembleDebug - Assembles all Debug builds. [extras:ShimmerAndroid:compileDebugSources]
    extras:ShimmerAndroid:bundleDebug - Assembles a bundle containing the library in debug.
    extras:ShimmerAndroid:compileLint
    extras:ShimmerAndroid:copyDebugLint
    extras:ShimmerAndroid:mergeDebugJniLibFolders
    extras:ShimmerAndroid:mergeDebugProguardFiles
    extras:ShimmerAndroid:packageDebugRenderscript
    extras:ShimmerAndroid:processDebugJavaRes
    extras:ShimmerAndroid:transformClassesAndResourcesWithSyncLibJarsForDebug
    extras:ShimmerAndroid:transformNative_libsWithMergeJniLibsForDebug
    extras:ShimmerAndroid:transformNative_libsWithSyncJniLibsForDebug
    extras:ShimmerAndroid:transformResourcesWithMergeJavaResForDebug
    app:assembleRelease - Assembles all Release builds. [app:compileReleaseSources, extras:ShimmerAndroid:bundleRelease]
    app:lintVitalRelease - Runs lint on just the fatal issues in the Release build.
    app:mergeReleaseJniLibFolders
    app:packageRelease
    app:processReleaseJavaRes
    app:transformClassesWithDexForRelease
    app:transformNative_libsWithMergeJniLibsForRelease
    app:transformResourcesWithMergeJavaResForRelease
    extras:ShimmerAndroid:assembleRelease - Assembles all Release builds. [extras:ShimmerAndroid:compileReleaseSources]
    extras:ShimmerAndroid:bundleRelease - Assembles a bundle containing the library in release.
    extras:ShimmerAndroid:compileLint
    extras:ShimmerAndroid:copyReleaseLint
    extras:ShimmerAndroid:mergeReleaseJniLibFolders
    extras:ShimmerAndroid:mergeReleaseProguardFiles
    extras:ShimmerAndroid:packageReleaseRenderscript
    extras:ShimmerAndroid:processReleaseJavaRes
    extras:ShimmerAndroid:transformClassesAndResourcesWithSyncLibJarsForRelease
    extras:ShimmerAndroid:transformNative_libsWithMergeJniLibsForRelease
    extras:ShimmerAndroid:transformNative_libsWithSyncJniLibsForRelease
    extras:ShimmerAndroid:transformResourcesWithMergeJavaResForRelease
    app:build - Assembles and tests this project. [app:assemble, app:check]
    extras:ShimmerAndroid:build - Assembles and tests this project. [extras:ShimmerAndroid:assemble, extras:ShimmerAndroid:check]
    app:buildDependents - Assembles and tests this project and all projects that depend on it. [app:build]
    extras:ShimmerAndroid:buildDependents - Assembles and tests this project and all projects that depend on it. [app:buildDependents, extras:ShimmerAndroid:build]
    app:buildNeeded - Assembles and tests this project and all projects it depends on. [app:build, extras:ShimmerAndroid:buildNeeded]
    extras:ShimmerAndroid:buildNeeded - Assembles and tests this project and all projects it depends on. [extras:ShimmerAndroid:build]
    app:clean - Deletes the build directory.
    extras:ShimmerAndroid:clean - Deletes the build directory.
    app:compileDebugAndroidTestSources [extras:ShimmerAndroid:bundleRelease]
    app:checkDebugManifest
    app:compileDebugAidl
    app:compileDebugAndroidTestAidl
    app:compileDebugAndroidTestJavaWithJavac
    app:compileDebugAndroidTestNdk
    app:compileDebugAndroidTestRenderscript
    app:compileDebugJavaWithJavac
    app:compileDebugRenderscript
    app:generateDebugAndroidTestAssets
    app:generateDebugAndroidTestBuildConfig
    app:generateDebugAndroidTestResValues
    app:generateDebugAndroidTestResources
    app:generateDebugAndroidTestSources
    app:generateDebugAssets
    app:generateDebugBuildConfig
    app:generateDebugResValues
    app:generateDebugResources
    app:generateDebugSources
    app:mergeDebugAndroidTestAssets
    app:mergeDebugAndroidTestResources
    app:mergeDebugAssets
    app:mergeDebugResources
    app:preBuild
    app:preDebugAndroidTestBuild
    app:preDebugBuild
    app:preReleaseBuild
    app:prepare9GAGMasterExtrasShimmerAndroidUnspecifiedLibrary - Prepare 9GAG-master.extras:ShimmerAndroid:unspecified
    app:prepareComAlexvasilkovFoldableLayout101Library - Prepare com.alexvasilkov:foldable-layout:1.0.1
    app:prepareComAndroidSupportSupportV42311Library - Prepare com.android.support:support-v4:23.1.1
    app:prepareComEtsyAndroidGridLibrary105Library - Prepare com.etsy.android.grid:library:1.0.5
    app:prepareDebugAndroidTestDependencies
    app:prepareDebugDependencies
    app:processDebugAndroidTestManifest
    app:processDebugAndroidTestResources
    app:processDebugManifest
    app:processDebugResources
    extras:ShimmerAndroid:compileDebugAndroidTestSources [extras:ShimmerAndroid:assembleDebug]
    extras:ShimmerAndroid:compileDebugAndroidTestAidl
    extras:ShimmerAndroid:compileDebugAndroidTestJavaWithJavac
    extras:ShimmerAndroid:compileDebugAndroidTestNdk
    extras:ShimmerAndroid:compileDebugAndroidTestRenderscript
    extras:ShimmerAndroid:generateDebugAndroidTestAssets
    extras:ShimmerAndroid:generateDebugAndroidTestBuildConfig
    extras:ShimmerAndroid:generateDebugAndroidTestResValues
    extras:ShimmerAndroid:generateDebugAndroidTestResources
    extras:ShimmerAndroid:generateDebugAndroidTestSources
    extras:ShimmerAndroid:mergeDebugAndroidTestAssets
    extras:ShimmerAndroid:mergeDebugAndroidTestResources
    extras:ShimmerAndroid:preDebugAndroidTestBuild
    extras:ShimmerAndroid:prepareDebugAndroidTestDependencies
    extras:ShimmerAndroid:processDebugAndroidTestManifest
    extras:ShimmerAndroid:processDebugAndroidTestResources
    app:compileDebugSources [extras:ShimmerAndroid:bundleRelease]
    app:checkDebugManifest
    app:compileDebugAidl
    app:compileDebugJavaWithJavac
    app:compileDebugNdk
    app:compileDebugRenderscript
    app:generateDebugAssets
    app:generateDebugBuildConfig
    app:generateDebugResValues
    app:generateDebugResources
    app:generateDebugSources
    app:mergeDebugAssets
    app:mergeDebugResources
    app:preBuild
    app:preDebugBuild
    app:preReleaseBuild
    app:prepare9GAGMasterExtrasShimmerAndroidUnspecifiedLibrary - Prepare 9GAG-master.extras:ShimmerAndroid:unspecified
    app:prepareComAlexvasilkovFoldableLayout101Library - Prepare com.alexvasilkov:foldable-layout:1.0.1
    app:prepareComAndroidSupportSupportV42311Library - Prepare com.android.support:support-v4:23.1.1
    app:prepareComEtsyAndroidGridLibrary105Library - Prepare com.etsy.android.grid:library:1.0.5
    app:prepareDebugDependencies
    app:processDebugManifest
    app:processDebugResources
    extras:ShimmerAndroid:compileDebugSources
    extras:ShimmerAndroid:checkDebugManifest
    extras:ShimmerAndroid:compileDebugAidl
    extras:ShimmerAndroid:compileDebugJavaWithJavac
    extras:ShimmerAndroid:compileDebugNdk
    extras:ShimmerAndroid:compileDebugRenderscript
    extras:ShimmerAndroid:generateDebugAssets
    extras:ShimmerAndroid:generateDebugBuildConfig
    extras:ShimmerAndroid:generateDebugResValues
    extras:ShimmerAndroid:generateDebugResources
    extras:ShimmerAndroid:generateDebugSources
    extras:ShimmerAndroid:mergeDebugAssets
    extras:ShimmerAndroid:packageDebugResources
    extras:ShimmerAndroid:preBuild
    extras:ShimmerAndroid:preDebugBuild
    extras:ShimmerAndroid:prepareDebugDependencies
    extras:ShimmerAndroid:processDebugManifest
    extras:ShimmerAndroid:processDebugResources
    app:compileDebugUnitTestSources [extras:ShimmerAndroid:bundleRelease]
    app:checkDebugManifest
    app:compileDebugAidl
    app:compileDebugJavaWithJavac
    app:compileDebugRenderscript
    app:compileDebugUnitTestJavaWithJavac
    app:generateDebugAssets
    app:generateDebugBuildConfig
    app:generateDebugResValues
    app:generateDebugResources
    app:generateDebugSources
    app:mergeDebugAssets
    app:mergeDebugResources
    app:preBuild
    app:preDebugBuild
    app:preDebugUnitTestBuild
    app:preReleaseBuild
    app:prepare9GAGMasterExtrasShimmerAndroidUnspecifiedLibrary - Prepare 9GAG-master.extras:ShimmerAndroid:unspecified
    app:prepareComAlexvasilkovFoldableLayout101Library - Prepare com.alexvasilkov:foldable-layout:1.0.1
    app:prepareComAndroidSupportSupportV42311Library - Prepare com.android.support:support-v4:23.1.1
    app:prepareComEtsyAndroidGridLibrary105Library - Prepare com.etsy.android.grid:library:1.0.5
    app:prepareDebugDependencies
    app:prepareDebugUnitTestDependencies
    app:processDebugJavaRes
    app:processDebugManifest
    app:processDebugResources
    app:processDebugUnitTestJavaRes
    extras:ShimmerAndroid:compileDebugUnitTestSources
    extras:ShimmerAndroid:checkDebugManifest
    extras:ShimmerAndroid:compileDebugAidl
    extras:ShimmerAndroid:compileDebugJavaWithJavac
    extras:ShimmerAndroid:compileDebugRenderscript
    extras:ShimmerAndroid:compileDebugUnitTestJavaWithJavac
    extras:ShimmerAndroid:generateDebugAssets
    extras:ShimmerAndroid:generateDebugBuildConfig
    extras:ShimmerAndroid:generateDebugResValues
    extras:ShimmerAndroid:generateDebugResources
    extras:ShimmerAndroid:generateDebugSources
    extras:ShimmerAndroid:mergeDebugAssets
    extras:ShimmerAndroid:packageDebugResources
    extras:ShimmerAndroid:preBuild
    extras:ShimmerAndroid:preDebugBuild
    extras:ShimmerAndroid:preDebugUnitTestBuild
    extras:ShimmerAndroid:prepareDebugDependencies
    extras:ShimmerAndroid:prepareDebugUnitTestDependencies
    extras:ShimmerAndroid:processDebugJavaRes
    extras:ShimmerAndroid:processDebugManifest
    extras:ShimmerAndroid:processDebugResources
    extras:ShimmerAndroid:processDebugUnitTestJavaRes
    app:compileReleaseSources [extras:ShimmerAndroid:bundleRelease]
    app:checkReleaseManifest
    app:compileReleaseAidl
    app:compileReleaseJavaWithJavac
    app:compileReleaseNdk
    app:compileReleaseRenderscript
    app:generateReleaseAssets
    app:generateReleaseBuildConfig
    app:generateReleaseResValues
    app:generateReleaseResources
    app:generateReleaseSources
    app:mergeReleaseAssets
    app:mergeReleaseResources
    app:preBuild
    app:preDebugBuild
    app:preReleaseBuild
    app:prepare9GAGMasterExtrasShimmerAndroidUnspecifiedLibrary - Prepare 9GAG-master.extras:ShimmerAndroid:unspecified
    app:prepareComAlexvasilkovFoldableLayout101Library - Prepare com.alexvasilkov:foldable-layout:1.0.1
    app:prepareComAndroidSupportSupportV42311Library - Prepare com.android.support:support-v4:23.1.1
    app:prepareComEtsyAndroidGridLibrary105Library - Prepare com.etsy.android.grid:library:1.0.5
    app:prepareReleaseDependencies
    app:processReleaseManifest
    app:processReleaseResources
    extras:ShimmerAndroid:compileReleaseSources
    extras:ShimmerAndroid:checkReleaseManifest
    extras:ShimmerAndroid:compileReleaseAidl
    extras:ShimmerAndroid:compileReleaseJavaWithJavac
    extras:ShimmerAndroid:compileReleaseNdk
    extras:ShimmerAndroid:compileReleaseRenderscript
    extras:ShimmerAndroid:generateReleaseAssets
    extras:ShimmerAndroid:generateReleaseBuildConfig
    extras:ShimmerAndroid:generateReleaseResValues
    extras:ShimmerAndroid:generateReleaseResources
    extras:ShimmerAndroid:generateReleaseSources
    extras:ShimmerAndroid:mergeReleaseAssets
    extras:ShimmerAndroid:packageReleaseResources
    extras:ShimmerAndroid:preBuild
    extras:ShimmerAndroid:preReleaseBuild
    extras:ShimmerAndroid:prepareReleaseDependencies
    extras:ShimmerAndroid:processReleaseManifest
    extras:ShimmerAndroid:processReleaseResources
    app:compileReleaseUnitTestSources [extras:ShimmerAndroid:bundleRelease]
    app:checkReleaseManifest
    app:compileReleaseAidl
    app:compileReleaseJavaWithJavac
    app:compileReleaseRenderscript
    app:compileReleaseUnitTestJavaWithJavac
    app:generateReleaseAssets
    app:generateReleaseBuildConfig
    app:generateReleaseResValues
    app:generateReleaseResources
    app:generateReleaseSources
    app:mergeReleaseAssets
    app:mergeReleaseResources
    app:preBuild
    app:preDebugBuild
    app:preReleaseBuild
    app:preReleaseUnitTestBuild
    app:prepare9GAGMasterExtrasShimmerAndroidUnspecifiedLibrary - Prepare 9GAG-master.extras:ShimmerAndroid:unspecified
    app:prepareComAlexvasilkovFoldableLayout101Library - Prepare com.alexvasilkov:foldable-layout:1.0.1
    app:prepareComAndroidSupportSupportV42311Library - Prepare com.android.support:support-v4:23.1.1
    app:prepareComEtsyAndroidGridLibrary105Library - Prepare com.etsy.android.grid:library:1.0.5
    app:prepareReleaseDependencies
    app:prepareReleaseUnitTestDependencies
    app:processReleaseJavaRes
    app:processReleaseManifest
    app:processReleaseResources
    app:processReleaseUnitTestJavaRes
    extras:ShimmerAndroid:compileReleaseUnitTestSources
    extras:ShimmerAndroid:checkReleaseManifest
    extras:ShimmerAndroid:compileReleaseAidl
    extras:ShimmerAndroid:compileReleaseJavaWithJavac
    extras:ShimmerAndroid:compileReleaseRenderscript
    extras:ShimmerAndroid:compileReleaseUnitTestJavaWithJavac
    extras:ShimmerAndroid:generateReleaseAssets
    extras:ShimmerAndroid:generateReleaseBuildConfig
    extras:ShimmerAndroid:generateReleaseResValues
    extras:ShimmerAndroid:generateReleaseResources
    extras:ShimmerAndroid:generateReleaseSources
    extras:ShimmerAndroid:mergeReleaseAssets
    extras:ShimmerAndroid:packageReleaseResources
    extras:ShimmerAndroid:preBuild
    extras:ShimmerAndroid:preReleaseBuild
    extras:ShimmerAndroid:preReleaseUnitTestBuild
    extras:ShimmerAndroid:prepareReleaseDependencies
    extras:ShimmerAndroid:prepareReleaseUnitTestDependencies
    extras:ShimmerAndroid:processReleaseJavaRes
    extras:ShimmerAndroid:processReleaseManifest
    extras:ShimmerAndroid:processReleaseResources
    extras:ShimmerAndroid:processReleaseUnitTestJavaRes
    app:mockableAndroidJar - Creates a version of android.jar that's suitable for unit tests.
    extras:ShimmerAndroid:mockableAndroidJar - Creates a version of android.jar that's suitable for unit tests.

    Build Setup tasks
    -----------------
    init - Initializes a new Gradle build. [incubating]
    wrapper - Generates Gradle wrapper files. [incubating]

    Help tasks
    ----------
    components - Displays the components produced by root project '9GAG-master'. [incubating]
    app:components - Displays the components produced by project ':app'. [incubating]
    extras:components - Displays the components produced by project ':extras'. [incubating]
    extras:ShimmerAndroid:components - Displays the components produced by project ':extras:ShimmerAndroid'. [incubating]
    dependencies - Displays all dependencies declared in root project '9GAG-master'.
    app:dependencies - Displays all dependencies declared in project ':app'.
    extras:dependencies - Displays all dependencies declared in project ':extras'.
    extras:ShimmerAndroid:dependencies - Displays all dependencies declared in project ':extras:ShimmerAndroid'.
    dependencyInsight - Displays the insight into a specific dependency in root project '9GAG-master'.
    app:dependencyInsight - Displays the insight into a specific dependency in project ':app'.
    extras:dependencyInsight - Displays the insight into a specific dependency in project ':extras'.
    extras:ShimmerAndroid:dependencyInsight - Displays the insight into a specific dependency in project ':extras:ShimmerAndroid'.
    help - Displays a help message.
    app:help - Displays a help message.
    extras:help - Displays a help message.
    extras:ShimmerAndroid:help - Displays a help message.
    projects - Displays the sub-projects of root project '9GAG-master'.
    app:projects - Displays the sub-projects of project ':app'.
    extras:projects - Displays the sub-projects of project ':extras'.
    extras:ShimmerAndroid:projects - Displays the sub-projects of project ':extras:ShimmerAndroid'.
    properties - Displays the properties of root project '9GAG-master'.
    app:properties - Displays the properties of project ':app'.
    extras:properties - Displays the properties of project ':extras'.
    extras:ShimmerAndroid:properties - Displays the properties of project ':extras:ShimmerAndroid'.
    tasks - Displays the tasks runnable from root project '9GAG-master' (some of the displayed tasks may belong to subprojects).
    app:tasks - Displays the tasks runnable from project ':app'.
    extras:tasks - Displays the tasks runnable from project ':extras' (some of the displayed tasks may belong to subprojects).
    extras:ShimmerAndroid:tasks - Displays the tasks runnable from project ':extras:ShimmerAndroid'.

    Install tasks
    -------------
    app:installDebug - Installs the Debug build. [app:assembleDebug]
    app:installDebugAndroidTest - Installs the android (on device) tests for the Debug build. [app:compileDebugAndroidTestSources]
    app:assembleDebugAndroidTest
    app:mergeDebugAndroidTestJniLibFolders
    app:packageDebugAndroidTest
    app:processDebugAndroidTestJavaRes
    app:transformClassesWithDexForDebugAndroidTest
    app:transformNative_libsWithMergeJniLibsForDebugAndroidTest
    app:transformResourcesWithMergeJavaResForDebugAndroidTest
    app:validateDebugSigning
    extras:ShimmerAndroid:installDebugAndroidTest - Installs the android (on device) tests for the Debug build. [extras:ShimmerAndroid:compileDebugAndroidTestSource
    s]
    extras:ShimmerAndroid:assembleDebugAndroidTest
    extras:ShimmerAndroid:mergeDebugAndroidTestJniLibFolders
    extras:ShimmerAndroid:packageDebugAndroidTest
    extras:ShimmerAndroid:processDebugAndroidTestJavaRes
    extras:ShimmerAndroid:transformClassesWithDexForDebugAndroidTest
    extras:ShimmerAndroid:transformNative_libsWithMergeJniLibsForDebugAndroidTest
    extras:ShimmerAndroid:transformResourcesWithMergeJavaResForDebugAndroidTest
    extras:ShimmerAndroid:validateDebugSigning
    app:uninstallAll - Uninstall all applications. [app:uninstallDebug, app:uninstallDebugAndroidTest, app:uninstallRelease]
    extras:ShimmerAndroid:uninstallAll - Uninstall all applications. [extras:ShimmerAndroid:uninstallDebugAndroidTest]
    app:uninstallDebug - Uninstalls the Debug build.
    app:uninstallDebugAndroidTest - Uninstalls the android (on device) tests for the Debug build.
    extras:ShimmerAndroid:uninstallDebugAndroidTest - Uninstalls the android (on device) tests for the Debug build.
    app:uninstallRelease - Uninstalls the Release build.

    Verification tasks
    ------------------
    app:check - Runs all checks. [app:lint, app:test]
    extras:ShimmerAndroid:check - Runs all checks. [extras:ShimmerAndroid:lint, extras:ShimmerAndroid:test]
    app:connectedAndroidTest - Installs and runs instrumentation tests for all flavors on connected devices. [app:connectedDebugAndroidTest]
    extras:ShimmerAndroid:connectedAndroidTest - Installs and runs instrumentation tests for all flavors on connected devices. [extras:ShimmerAndroid:connectedDebug
    AndroidTest]
    app:connectedCheck - Runs all device checks on currently connected devices. [app:connectedAndroidTest]
    extras:ShimmerAndroid:connectedCheck - Runs all device checks on currently connected devices. [extras:ShimmerAndroid:connectedAndroidTest]
    app:connectedDebugAndroidTest - Installs and runs the tests for debug on connected devices. [app:assembleDebug, app:compileDebugAndroidTestSources]
    app:assembleDebugAndroidTest
    app:mergeDebugAndroidTestJniLibFolders
    app:packageDebugAndroidTest
    app:processDebugAndroidTestJavaRes
    app:transformClassesWithDexForDebugAndroidTest
    app:transformNative_libsWithMergeJniLibsForDebugAndroidTest
    app:transformResourcesWithMergeJavaResForDebugAndroidTest
    extras:ShimmerAndroid:connectedDebugAndroidTest - Installs and runs the tests for debug on connected devices. [extras:ShimmerAndroid:assembleDebug, extras:Shimm
    erAndroid:compileDebugAndroidTestSources]
    extras:ShimmerAndroid:assembleDebugAndroidTest
    extras:ShimmerAndroid:mergeDebugAndroidTestJniLibFolders
    extras:ShimmerAndroid:packageDebugAndroidTest
    extras:ShimmerAndroid:processDebugAndroidTestJavaRes
    extras:ShimmerAndroid:transformClassesWithDexForDebugAndroidTest
    extras:ShimmerAndroid:transformNative_libsWithMergeJniLibsForDebugAndroidTest
    extras:ShimmerAndroid:transformResourcesWithMergeJavaResForDebugAndroidTest
    extras:ShimmerAndroid:validateDebugSigning
    app:deviceAndroidTest - Installs and runs instrumentation tests using all Device Providers.
    extras:ShimmerAndroid:deviceAndroidTest - Installs and runs instrumentation tests using all Device Providers.
    app:deviceCheck - Runs all device checks using Device Providers and Test Servers. [app:deviceAndroidTest]
    extras:ShimmerAndroid:deviceCheck - Runs all device checks using Device Providers and Test Servers. [extras:ShimmerAndroid:deviceAndroidTest]
    app:lint - Runs lint on all variants. [extras:ShimmerAndroid:bundleRelease]
    app:checkDebugManifest
    app:checkReleaseManifest
    app:compileDebugAidl
    app:compileDebugJavaWithJavac
    app:compileDebugRenderscript
    app:compileLint
    app:compileReleaseAidl
    app:compileReleaseJavaWithJavac
    app:compileReleaseRenderscript
    app:generateDebugAssets
    app:generateDebugBuildConfig
    app:generateDebugResValues
    app:generateDebugResources
    app:generateDebugSources
    app:generateReleaseAssets
    app:generateReleaseBuildConfig
    app:generateReleaseResValues
    app:generateReleaseResources
    app:generateReleaseSources
    app:mergeDebugAssets
    app:mergeDebugResources
    app:mergeReleaseAssets
    app:mergeReleaseResources
    app:preBuild
    app:preDebugBuild
    app:preReleaseBuild
    app:prepare9GAGMasterExtrasShimmerAndroidUnspecifiedLibrary - Prepare 9GAG-master.extras:ShimmerAndroid:unspecified
    app:prepareComAlexvasilkovFoldableLayout101Library - Prepare com.alexvasilkov:foldable-layout:1.0.1
    app:prepareComAndroidSupportSupportV42311Library - Prepare com.android.support:support-v4:23.1.1
    app:prepareComEtsyAndroidGridLibrary105Library - Prepare com.etsy.android.grid:library:1.0.5
    app:prepareDebugDependencies
    app:prepareReleaseDependencies
    app:processDebugManifest
    app:processDebugResources
    app:processReleaseManifest
    app:processReleaseResources
    extras:ShimmerAndroid:lint - Runs lint on all variants.
    extras:ShimmerAndroid:checkDebugManifest
    extras:ShimmerAndroid:checkReleaseManifest
    extras:ShimmerAndroid:compileDebugAidl
    extras:ShimmerAndroid:compileDebugJavaWithJavac
    extras:ShimmerAndroid:compileDebugRenderscript
    extras:ShimmerAndroid:compileLint
    extras:ShimmerAndroid:compileReleaseAidl
    extras:ShimmerAndroid:compileReleaseJavaWithJavac
    extras:ShimmerAndroid:compileReleaseRenderscript
    extras:ShimmerAndroid:generateDebugAssets
    extras:ShimmerAndroid:generateDebugBuildConfig
    extras:ShimmerAndroid:generateDebugResValues
    extras:ShimmerAndroid:generateDebugResources
    extras:ShimmerAndroid:generateDebugSources
    extras:ShimmerAndroid:generateReleaseAssets
    extras:ShimmerAndroid:generateReleaseBuildConfig
    extras:ShimmerAndroid:generateReleaseResValues
    extras:ShimmerAndroid:generateReleaseResources
    extras:ShimmerAndroid:generateReleaseSources
    extras:ShimmerAndroid:mergeDebugAssets
    extras:ShimmerAndroid:mergeReleaseAssets
    extras:ShimmerAndroid:packageDebugResources
    extras:ShimmerAndroid:packageReleaseResources
    extras:ShimmerAndroid:preBuild
    extras:ShimmerAndroid:preDebugBuild
    extras:ShimmerAndroid:preReleaseBuild
    extras:ShimmerAndroid:prepareDebugDependencies
    extras:ShimmerAndroid:prepareReleaseDependencies
    extras:ShimmerAndroid:processDebugManifest
    extras:ShimmerAndroid:processDebugResources
    extras:ShimmerAndroid:processReleaseManifest
    extras:ShimmerAndroid:processReleaseResources
    app:lintDebug - Runs lint on the Debug build. [extras:ShimmerAndroid:bundleRelease]
    app:checkDebugManifest
    app:compileDebugAidl
    app:compileDebugJavaWithJavac
    app:compileDebugRenderscript
    app:compileLint
    app:generateDebugAssets
    app:generateDebugBuildConfig
    app:generateDebugResValues
    app:generateDebugResources
    app:generateDebugSources
    app:mergeDebugAssets
    app:mergeDebugResources
    app:preBuild
    app:preDebugBuild
    app:preReleaseBuild
    app:prepare9GAGMasterExtrasShimmerAndroidUnspecifiedLibrary - Prepare 9GAG-master.extras:ShimmerAndroid:unspecified
    app:prepareComAlexvasilkovFoldableLayout101Library - Prepare com.alexvasilkov:foldable-layout:1.0.1
    app:prepareComAndroidSupportSupportV42311Library - Prepare com.android.support:support-v4:23.1.1
    app:prepareComEtsyAndroidGridLibrary105Library - Prepare com.etsy.android.grid:library:1.0.5
    app:prepareDebugDependencies
    app:processDebugManifest
    app:processDebugResources
    extras:ShimmerAndroid:lintDebug - Runs lint on the Debug build.
    extras:ShimmerAndroid:checkDebugManifest
    extras:ShimmerAndroid:compileDebugAidl
    extras:ShimmerAndroid:compileDebugJavaWithJavac
    extras:ShimmerAndroid:compileDebugRenderscript
    extras:ShimmerAndroid:compileLint
    extras:ShimmerAndroid:generateDebugAssets
    extras:ShimmerAndroid:generateDebugBuildConfig
    extras:ShimmerAndroid:generateDebugResValues
    extras:ShimmerAndroid:generateDebugResources
    extras:ShimmerAndroid:generateDebugSources
    extras:ShimmerAndroid:mergeDebugAssets
    extras:ShimmerAndroid:packageDebugResources
    extras:ShimmerAndroid:preBuild
    extras:ShimmerAndroid:preDebugBuild
    extras:ShimmerAndroid:prepareDebugDependencies
    extras:ShimmerAndroid:processDebugManifest
    extras:ShimmerAndroid:processDebugResources
    app:lintRelease - Runs lint on the Release build. [extras:ShimmerAndroid:bundleRelease]
    app:checkReleaseManifest
    app:compileLint
    app:compileReleaseAidl
    app:compileReleaseJavaWithJavac
    app:compileReleaseRenderscript
    app:generateReleaseAssets
    app:generateReleaseBuildConfig
    app:generateReleaseResValues
    app:generateReleaseResources
    app:generateReleaseSources
    app:mergeReleaseAssets
    app:mergeReleaseResources
    app:preBuild
    app:preDebugBuild
    app:preReleaseBuild
    app:prepare9GAGMasterExtrasShimmerAndroidUnspecifiedLibrary - Prepare 9GAG-master.extras:ShimmerAndroid:unspecified
    app:prepareComAlexvasilkovFoldableLayout101Library - Prepare com.alexvasilkov:foldable-layout:1.0.1
    app:prepareComAndroidSupportSupportV42311Library - Prepare com.android.support:support-v4:23.1.1
    app:prepareComEtsyAndroidGridLibrary105Library - Prepare com.etsy.android.grid:library:1.0.5
    app:prepareReleaseDependencies
    app:processReleaseManifest
    app:processReleaseResources
    extras:ShimmerAndroid:lintRelease - Runs lint on the Release build.
    extras:ShimmerAndroid:checkReleaseManifest
    extras:ShimmerAndroid:compileLint
    extras:ShimmerAndroid:compileReleaseAidl
    extras:ShimmerAndroid:compileReleaseJavaWithJavac
    extras:ShimmerAndroid:compileReleaseRenderscript
    extras:ShimmerAndroid:generateReleaseAssets
    extras:ShimmerAndroid:generateReleaseBuildConfig
    extras:ShimmerAndroid:generateReleaseResValues
    extras:ShimmerAndroid:generateReleaseResources
    extras:ShimmerAndroid:generateReleaseSources
    extras:ShimmerAndroid:mergeReleaseAssets
    extras:ShimmerAndroid:packageReleaseResources
    extras:ShimmerAndroid:preBuild
    extras:ShimmerAndroid:preReleaseBuild
    extras:ShimmerAndroid:prepareReleaseDependencies
    extras:ShimmerAndroid:processReleaseManifest
    extras:ShimmerAndroid:processReleaseResources
    app:test - Run unit tests for all variants. [app:testDebugUnitTest, app:testReleaseUnitTest]
    extras:ShimmerAndroid:test - Run unit tests for all variants. [extras:ShimmerAndroid:testDebugUnitTest, extras:ShimmerAndroid:testReleaseUnitTest]
    app:testDebugUnitTest - Run unit tests for the debug build. [app:compileDebugUnitTestSources, app:mockableAndroidJar]
    app:assembleDebugUnitTest
    extras:ShimmerAndroid:testDebugUnitTest - Run unit tests for the debug build. [extras:ShimmerAndroid:compileDebugUnitTestSources, extras:ShimmerAndroid:mockable
    AndroidJar]
    extras:ShimmerAndroid:assembleDebugUnitTest
    app:testReleaseUnitTest - Run unit tests for the release build. [app:compileReleaseUnitTestSources, app:mockableAndroidJar]
    app:assembleReleaseUnitTest
    extras:ShimmerAndroid:testReleaseUnitTest - Run unit tests for the release build. [extras:ShimmerAndroid:compileReleaseUnitTestSources, extras:ShimmerAndroid:mo
    ckableAndroidJar]
    extras:ShimmerAndroid:assembleReleaseUnitTest

    Other tasks
    -----------
    extras:ShimmerAndroid:assembleDefault [extras:ShimmerAndroid:assembleRelease]
    app:jarDebugClasses [extras:ShimmerAndroid:bundleRelease]
    app:checkDebugManifest
    app:compileDebugAidl
    app:compileDebugJavaWithJavac
    app:compileDebugRenderscript
    app:generateDebugAssets
    app:generateDebugBuildConfig
    app:generateDebugResValues
    app:generateDebugResources
    app:generateDebugSources
    app:mergeDebugAssets
    app:mergeDebugResources
    app:preBuild
    app:preDebugBuild
    app:preReleaseBuild
    app:prepare9GAGMasterExtrasShimmerAndroidUnspecifiedLibrary - Prepare 9GAG-master.extras:ShimmerAndroid:unspecified
    app:prepareComAlexvasilkovFoldableLayout101Library - Prepare com.alexvasilkov:foldable-layout:1.0.1
    app:prepareComAndroidSupportSupportV42311Library - Prepare com.android.support:support-v4:23.1.1
    app:prepareComEtsyAndroidGridLibrary105Library - Prepare com.etsy.android.grid:library:1.0.5
    app:prepareDebugDependencies
    app:processDebugManifest
    app:processDebugResources
    app:jarReleaseClasses [extras:ShimmerAndroid:bundleRelease]
    app:checkReleaseManifest
    app:compileReleaseAidl
    app:compileReleaseJavaWithJavac
    app:compileReleaseRenderscript
    app:generateReleaseAssets
    app:generateReleaseBuildConfig
    app:generateReleaseResValues
    app:generateReleaseResources
    app:generateReleaseSources
    app:mergeReleaseAssets
    app:mergeReleaseResources
    app:preBuild
    app:preDebugBuild
    app:preReleaseBuild
    app:prepare9GAGMasterExtrasShimmerAndroidUnspecifiedLibrary - Prepare 9GAG-master.extras:ShimmerAndroid:unspecified
    app:prepareComAlexvasilkovFoldableLayout101Library - Prepare com.alexvasilkov:foldable-layout:1.0.1
    app:prepareComAndroidSupportSupportV42311Library - Prepare com.android.support:support-v4:23.1.1
    app:prepareComEtsyAndroidGridLibrary105Library - Prepare com.etsy.android.grid:library:1.0.5
    app:prepareReleaseDependencies
    app:processReleaseManifest
    app:processReleaseResources
    app:transformResourcesWithMergeJavaResForDebugUnitTest
    app:preBuild
    app:preDebugUnitTestBuild
    app:prepareDebugUnitTestDependencies
    app:processDebugUnitTestJavaRes
    extras:ShimmerAndroid:transformResourcesWithMergeJavaResForDebugUnitTest
    extras:ShimmerAndroid:preBuild
    extras:ShimmerAndroid:preDebugUnitTestBuild
    extras:ShimmerAndroid:prepareDebugUnitTestDependencies
    extras:ShimmerAndroid:processDebugUnitTestJavaRes
    app:transformResourcesWithMergeJavaResForReleaseUnitTest
    app:preBuild
    app:preReleaseUnitTestBuild
    app:prepareReleaseUnitTestDependencies
    app:processReleaseUnitTestJavaRes
    extras:ShimmerAndroid:transformResourcesWithMergeJavaResForReleaseUnitTest
    extras:ShimmerAndroid:preBuild
    extras:ShimmerAndroid:preReleaseUnitTestBuild
    extras:ShimmerAndroid:prepareReleaseUnitTestDependencies
    extras:ShimmerAndroid:processReleaseUnitTestJavaRes

    BUILD SUCCESSFUL

======Android工程 Gradle的 properties集合==========

project:Project本身
name:Project的名字
path:Project的绝对路径
description:Project的描述信息
buildDir:Project构建结果存放目录
version:Project的版本号

D:\version\9GAG-master>.\gradlew properties
Picked up _JAVA_OPTIONS: -Xmx512M
:properties

------------------------------------------------------------
Root project
------------------------------------------------------------
【allprojects表示所有的Project,只能包含一个根Project】
allprojects: [root project '9GAG-master', project ':app', project ':extras', project ':extras:ShimmerAndroid']
android: {compileSdkVersion=23, buildToolsVersion=23.0.2, applicationId=me.storm.ninegag,
minSdkVersion=14, targetSdkVersion=22, versionCode=2, versionName=1.1.0}
ant: org.gradle.api.internal.project.DefaultAntBuilder@1b74615
antBuilderFactory: org.gradle.api.internal.project.DefaultAntBuilderFactory@686ddb
artifacts: org.gradle.api.internal.artifacts.dsl.DefaultArtifactHandler_Decorated@29f28e
asDynamicObject: org.gradle.api.internal.ExtensibleDynamicObject@1fa1eb5
baseClassLoaderScope: org.gradle.api.internal.initialization.DefaultClassLoaderScope@b46831
buildDir: D:\version\9GAG-master\build    【buildDir  表示构建结果-缓存等的输出目录】
buildFile: D:\version\9GAG-master\build.gradle
buildScriptSource: org.gradle.groovy.scripts.UriScriptSource@ff86f
buildscript: org.gradle.api.internal.initialization.DefaultScriptHandler@12b472d
childProjects: {app=project ':app', extras=project ':extras'}
class: class org.gradle.api.internal.project.DefaultProject_Decorated
classLoaderScope: org.gradle.api.internal.initialization.DefaultClassLoaderScope@4f51d9
components: []
configurationActions: org.gradle.configuration.project.DefaultProjectConfigurationActionContainer@1b96e4c
configurations: []
convention: org.gradle.api.internal.plugins.DefaultConvention@383a14
defaultTasks: []
dependencies: org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler_Decorated@1691611
depth: 0
description: null
ext: org.gradle.api.internal.plugins.DefaultExtraPropertiesExtension@15a573c
extensions: org.gradle.api.internal.plugins.DefaultConvention@383a14
fileOperations: org.gradle.api.internal.file.DefaultFileOperations@19f9555
fileResolver: org.gradle.api.internal.file.BaseDirFileResolver@3ee128
gradle: build '9GAG-master'
group:
inheritedScope: org.gradle.api.internal.ExtensibleDynamicObject$InheritedDynamicObject@164a960
logger: org.gradle.api.logging.Logging$LoggerImpl@6ce247
logging: org.gradle.logging.internal.DefaultLoggingManager@192e8e2
modelRegistry: org.gradle.model.internal.registry.DefaultModelRegistry@2c65d9
module: org.gradle.api.internal.artifacts.ProjectBackedModule@31ce0f
name: 9GAG-master
parent: null
parentIdentifier: null
path: :
plugins: [org.gradle.api.plugins.HelpTasksPlugin@8ee871]
processOperations: org.gradle.api.internal.file.DefaultFileOperations@19f9555
project: root project '9GAG-master'
projectDir: D:\version\9GAG-master
projectEvaluationBroadcaster: ProjectEvaluationListener broadcast
projectEvaluator: org.gradle.configuration.project.LifecycleProjectEvaluator@dbe995
projectRegistry: org.gradle.api.internal.project.DefaultProjectRegistry@1d45c93
properties: {...}
repositories: [org.gradle.api.internal.artifacts.repositories.DefaultMavenArtifactRepository_Decorated@14b6e33]
resources: org.gradle.api.internal.resources.DefaultResourceHandler@7ed7ae
rootDir: D:\version\9GAG-master
rootProject: root project '9GAG-master'
scriptHandlerFactory: org.gradle.api.internal.initialization.DefaultScriptHandlerFactory@1ba1175
scriptPluginFactory: org.gradle.configuration.DefaultScriptPluginFactory@d5ff55
serviceRegistryFactory: org.gradle.internal.service.scopes.ProjectScopeServices$5@3220a
services: ProjectScopeServices
standardOutputCapture: org.gradle.logging.internal.DefaultLoggingManager@192e8e2
state: project state 'EXECUTED'
status: release
subprojects: [project ':app', project ':extras', project ':extras:ShimmerAndroid']
tasks: [task ':properties']
version: unspecified

BUILD SUCCESSFUL
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值