宁波专业做网站,网站后台密码修改,自建网站赚钱,网站名称没有排名8种机械键盘轴体对比本人程序员#xff0c;要买一个写代码的键盘#xff0c;请问红轴和茶轴怎么选#xff1f;gradle 语法解析:gradle的语法十分简洁,以至于看起来跟像是配置文件。先看一个简单的android项目完整的gradle脚本#xff1a;build.gradle123456789101112131415…8种机械键盘轴体对比本人程序员要买一个写代码的键盘请问红轴和茶轴怎么选gradle 语法解析:gradle的语法十分简洁,以至于看起来跟像是配置文件。先看一个简单的android项目完整的gradle脚本build.gradle1234567891011121314151617181920212223242526272829303132333435363738apply plugin: com.android.librarybuildscript {repositories {jcenter()}dependencies {classpath com.android.tools.build:gradle:1.2.3}allprojects {repositories {mavenCentral()}}android {compileSdkVersion 19buildToolsVersion 20.0.0defaultConfig {applicationId com.example.progressdemominSdkVersion 14targetSdkVersion 19}buildTypes {release {runProguard falseproguardFiles getDefaultProguardFile(proguard-android.txt), proguard-rules.txt}}}dependencies {compile project(:library)compile com.android.support:support-v4:20.0.0}这是个很常见的配置。这里buildscript后面的作用域内的代码是配置gradle运行所需要插件repositories指明插件从jcenter仓库下载dependencies指明这个项目编译依赖于com.android.tools.build插件。原理这个脚本看着很直观意思也很清楚但是对应具体的语法看着还是有些摸不到规律。解释这个语法需要先了解闭包。groovy简介这里简单介绍下groovy具体得可以看官方文档。groovy是基于jvm的动态语言语法和java也十分相似而groovy更灵活。groovy 中有很多的语法糖这使得代码看着非常简洁。首先要简化的是’;’和return完整版本(与java完全一致)123String (){return test;}这个等价于123String (){test}然后是groovy方法调用functionTest.groovy12345678void functionA(String a){print(hello a)}//调用functionA(world)//调用,简化写法。functionA world上面写了2种方法调用作用效果是一样的。groovy可以去掉方法的括号用一个空格间隔开。这里是不是似曾相识呢所以classpath com.android.tools.build:gradle:1.2.3也可以写作classpath(com.android.tools.build:gradle:1.2.3);同样多个参数数组闭包作为参数都可以这样操作123456functionB test, obj//多个参数functionC [key: value] //map作为参数functionC key: value //map作为参数 简化写法functionD {println im a closure}回到开始的build.gradle脚本可以看到很多地方用了这样的语法糖让我们把它打回原形12345678910111213141516171819202122232425262728293031323334353637apply([plugin: com.android.library])buildscript({repositories({jcenter(););});dependencies({classpath(com.android.tools.build:gradle:1.2.3);});allprojects({repositories({mavenCentral();});});android({compileSdkVersion(19);buildToolsVersion(20.0.0);defaultConfig({applicationId(com.example.progressdemo);minSdkVersion(14);targetSdkVersion(19);});buildTypes({release({runProguard(false);proguardFiles(getDefaultProguardFile(proguard-android.txt), proguard-rules.txt);});});});dependencies({compile(project(:library));//inlinecompile(com.android.support:support-v4:20.0.0)});上面的2段代码是等价的。这样代码已经比较清楚了build.gradle的内容也变成了groovy脚本实际上groovy脚本只是内置了class类的定义和main启动函数它本质和我们平时写得java类没太大区别。当然上面的代码看着更像javascript,这是因为里面写了很多的闭包。####闭包(closure)很多语言都有闭包但是java没有所以java的代码总是很罗嗦。闭包简单理解就是方法块可以想象java中的静态方法块。定义1234567def closureA {println Im a closure}//带参数的def closureB { file -println file.getPath()}需要注意的是这里并没有定义file的类型,只要参数有path属性或者getPath()方法就可以了。调用12closureA()closureB(new File(/home/user/fileName))结合函数使用1234567891011void funtionE(closure){closure()///...}//调用:funtionE(closureA)//直接定义和使用闭包funtionE {println Im a closure}到这里我们就可以很容易地看懂gradle文件了