Android Studio中必须懂的Gradle(一)--参考Gradle的在线文档

关于Android Studio中使用基本Gradle请参考:http://ask.android-studio.org/?/article/66 这里面有视频讲解android studio中的项目结构和gradle在其中的作用。

我在这里主要讲解一下gradle的一些常用语法。
Gradle Build Language Reference

其实学习这些常用的语法,也就是如何看懂上面的官方参考文档。
打开上面的网页,我们看到了Gradle的语言介绍。

这里写图片描述

由上图可以看到,gradle的语法中主要的分类:构建的脚本Project
初始话的脚本Gradle 设置的脚本Settings. 那么我们点击进入Settings里面。这里写图片描述

这个Settings里面出现一个突然让你敏感的词语–Multi-Project Build。 这个Multi-Project Build主要涉及了我们android studio中的settings.gradle的设置。我们在android studio为了同时可以构建多个模块的project,我们就必须在settings.gradle中的include标签中加入多个模块的projectname.如下:
这里写图片描述
所以这里的Settings文档应该是说明我们可以怎么去设置project属性和build属性的。
继续往下拉,你会发现,这个Settings中还定义了其他的属性和方法。
这里写图片描述
我们上面用的include标签其实是一个方法。
include(projectPaths)
这个方法中需要传入一个projcetPaths,那么projectPaths参数又是什么类型呢?一个String还是一个List还是其他object呢?
那么就再点击进去include里面去。
这里写图片描述

点进去之后,我们看到了这个方法用法说明。而且上面提及到的projectPaths参数其实是用String[]类型。但注意红框中的冒号分离标示的说明,每个模块名称名称前面需要有:作为分割符。

从上面一连串的参考之后,你就会明白,为何settings.gradle可以写上这个方面了。前面也说明了,这个settings.gradle中还定义其他的方法和属性,因此我们根据上面的参考方法,自己可以试验一下。
这里写图片描述

我们可以打印一下这个apppath。

根据上面的方法,我在lib中build.gradle中加入一个type。

//所有的type相关参考https://docs.gradle.org/current/dsl/

//-------------------------复制--------------------
//参考https://docs.gradle.org/current/javadoc/org/gradle/api/file/CopySpec.html
def myCopySpec = project.copySpec {//定义过滤规则
    //除去。。。不复制
    exclude('**/*.txt')
    from('src/main/java'){    //from 是一个闭包  "定义在一个函数内部的函数"。
        include '**/*.java'
    }

}

//使用外部属性定义
def copypath = 'build/outputs/mycopy'

task mycopy(type:Copy ){
    println("task mycopy---park")
    //复制到00....
    delete(copypath)
    into(copypath)
    //CopySpec  with(CopySpec... sourceSpecs)
    //Adds the given specs as a child of this spec.
    includeEmptyDirs = true   //是否包含空的文件夹
    with myCopySpec
}

在你们工程文件夹build/outputs/中可以看到我们复制到outputs中的文件夹新建了一个mycopy.

猜你喜欢

转载自blog.csdn.net/A_AsinCEO/article/details/50178301
今日推荐