Android开发中Gradle配置使用

Android开发中Gradle配置使用 前言 每次创建私有项目都需要配置gradle文件,没什么技术含量,还要多劳动(程序员就是懒),为了能方便使用,才有了本仓库的诞生。 欢迎各位小伙伴们来砸场,喜欢请star下… 私有仓库使用 在下载config.properties文件放到工厂根目录(和gradle.properties同级) 如果使用Artifactory仓库配置工程build.gradle文件请看详细文件 在项目build.gradle文件中使用 apply from:'https://coding.net/u/zdl_411437734/p/gradle/git/raw/master/nexusBintry.gradle' 或者 apply from:'https://coding.net/u/zdl_411437734/p/gradle/git/raw/master/artifactBintry.gradle' 执行相关命令即可 gradle uploadArchives (nexus仓库) 或者 gradle assembleRelease artifactoryPublish (artifactory仓库) 详细使用文档 Sonarqube使用 详细使用文档 pack(打包)使用 经常打包apk,有一个困扰,怎么修改打包后的名称,怎么区分打包的是release版本还是debug版本,想了解请继续看 在项目的buil.gradle文件配置打包的版本和输出的名称 //打包APK根据不同的环境打包不同的名称 ext{ productName = project.name versionName = "1.0.1" } //productName 打包出来的名称 //versionName 打包显示版本号 2 . 引入packe.gradle文件下载packe.gradle apply from:"./pack.gradle" 或者 apply from:"https://coding.net/u/zdl_411437734/p/gradle/git/raw/master/pack.gradle" 3 . 打包即可(~~) sign(签名)使用 有时候,在集成第三方时候,需要我们输入签名,在开发中和发布中一般默认都是2个keystroe,在这种情况下,开发很不方便,不断要打包成正式包才能测试,为了解决这个问题,我们配置gradle在开发时就使用正式签名开发,想了解请继续看 在项目的buil.gradle文件配置打包的版本和输出的名称 //打包APK根据不同的环境打包不同的名称 ext{ productName = "CommonProject" versionName = "2.0.1" keyPassword = "android" keyFilePath = "/Users/jason/Documents/keystore/android.keystore" storePassword = "android" keyAlias = "android" } //productName 打包出来的名称 //versionName 打包显示版本号 //keyPassword 密码 //keyFilePath 正式全路径 //storePassword 密码 //keyAlias 别名 2 . 引入sign.gradle文件下载sign.gradle ...

2017年6月7日 · 1 分钟 · 天边的星星

Android 使用Gradle打包APP名称和版本号

需求:我想根据不同的类型,打包不同的版本号,在Android中怎么实现? 例如:release(发布)版本号 1.0.1,debug(测试)版本号1.0.1.20160924 在Android开发中,我们会不断的进行版本打包,打包分为2类: 1、release(正式发布上线版) 2、debug(测试版)。 我们可以通过每次打包前修改build.gradle中android->versionName实现,作为一个程序员,有不断探索的精神,能懒就懒(重复没有意义的工作懒的做)。 知识介绍 1、gradle中定义变量和函数 通过关键字 def 来定义 例如:def versionStr = "1.0.1" def myFunction() { return "xxxxx" } 2、gradle中时间使用 new Date().format("yyyyMMdd", TimeZone.getTimeZone("UTC"); 这行代码的意思是“当前时间是UTC时区,已yyyyMMdd格式化时间输出” 3、gradle中variant.mergedFlavor使用 variant.mergedFlavor.versionName 表示修改打包时versionName的值 4、gradle中variant.outputs使用 variant.outputs表示输出相关配置 下面是我的build.gradle文件 apply plugin: &#39;com.android.application&#39; apply plugin: &#39;android-apt&#39; //定义时间 def releaseTime() { return new Date().format("yyyyMMdd", TimeZone.getTimeZone("UTC")) } //设置发布的显示的版本号 def getVersionName(){ return "1.2.0" } android { compileSdkVersion 23 buildToolsVersion "24.0.0" defaultConfig { applicationId "com.xxx.xxxx" minSdkVersion 14 targetSdkVersion 23 versionCode 3 //versionName getVersionName() } buildTypes { debug { buildConfigField("boolean","API_DEBUG","true") minifyEnabled false proguardFiles getDefaultProguardFile(&#39;proguard-android.txt&#39;), &#39;proguard-rules.pro&#39; } release { buildConfigField("boolean","API_DEBUG","false") minifyEnabled false proguardFiles getDefaultProguardFile(&#39;proguard-android.txt&#39;), &#39;proguard-rules.pro&#39; } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_7 targetCompatibility JavaVersion.VERSION_1_7 } //修改打包不能成功配置 lintOptions { checkReleaseBuilds false abortOnError false } //配置自定义打包名称 applicationVariants.all { variant -> variant.outputs.each { output -> def outputFile = output.outputFile def fileName if (outputFile != null && outputFile.name.endsWith(&#39;.apk&#39;)) { if (variant.buildType.name.equals(&#39;release&#39;)) { variant.mergedFlavor.versionName = getVersionName() fileName = "XXXX_<span class="katex math inline">{variant.mergedFlavor.versionName}_release.apk" } else if (variant.buildType.name.equals(&#39;debug&#39;)) { variant.mergedFlavor.versionName = getVersionName()+"."+releaseTime() fileName = "XXXX_</span>{variant.mergedFlavor.versionName}_debug.apk" } output.outputFile = new File(outputFile.parent, fileName) } } } } dependencies { compile fileTree(include: [&#39;*.jar&#39;], dir: &#39;libs&#39;) testCompile &#39;junit:junit:4.12&#39; } tasks.withType(JavaCompile) { options.encoding = "UTF-8" } 大家可以举一反三 例如想修改versionCode可以这么写 variant.mergedFlavor.versionCode = xxxx; 现在试试吧! ...

2016年9月24日 · 1 分钟 · 天边的星星

使用Gradle发布Android开源项目到JCenter

欢做些开源项目的朋友,相信有不少人都希望能把自己的项目发布到公共的中央仓库,如maven中央仓库,以供别人方便地集成使用。而使用了Android Studio的同学,应该也对gradle和jcenter印象深刻,不少开源库都是发布到这里的。这一篇就主要来介绍一下,如何使用Gradle发布到jcenter。 转载:http://blog.csdn.net/maosidiaoxian/article/details/43148643 注册 先到https://bintray.com注册一个账号。 配置账号 我们需要配置一下BINTRAY_USER及BINTRAY_KEY两个属性。BINTRAY_USER即你注册的账号名,BINTRAY_KEY可通过以下方法找到。 如图所示,先点击你的账号名称进入个人页面。 ![](http://img.blog.csdn.net/20150126092456203?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbWFvc2lkaWFveGlhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center) 然后点击Edit,进入编辑页面。 ![](http://img.blog.csdn.net/20150126092541646?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbWFvc2lkaWFveGlhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center) 接着点击API key,再点右边的Show就可以看到API KEY了。 ![](http://img.blog.csdn.net/20150126092533531?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbWFvc2lkaWFveGlhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center) 然后到你的.gradle目录下(如果你没有配置过GRADLE_USER_HOME的环境变量,则是在你的用户目录下),编辑gradle.properties(如果没有则创建),加入配置: **[plain]** [view plain](http://blog.csdn.net/maosidiaoxian/article/details/43148643#)<span class="tracking-ad" data-mod="popu_168"><span class="tracking-ad" data-mod="popu_168"> [copy](http://blog.csdn.net/maosidiaoxian/article/details/43148643#)</span></span> <div> <embed id="ZeroClipboardMovie_1" src="http://static.blog.csdn.net/scripts/ZeroClipboard/ZeroClipboard.swf" type="application/x-shockwave-flash" width="18" height="18" align="middle" name="ZeroClipboardMovie_1"> </embed> </div> <span class="tracking-ad" data-mod="popu_167">[![在CODE上查看代码片](https://code.csdn.net/assets/CODE_ico.png)](https://code.csdn.net/snippets/589055)</span><span class="tracking-ad" data-mod="popu_170">[![派生到我的代码片](https://code.csdn.net/assets/ico_fork.svg)](https://code.csdn.net/snippets/589055/fork)</span> </div> </div> - BINTRAY_USER=xxx - BINTRAY_KEY=xxx 配置项目 下载我的这个项目:https://github.com/msdx/gradle-publish,把gradle.properties拷贝到你的项目中,并配置这些属性。 然后参考这里的build.gradle,在你的build.gradle上面加入: **[java]** [view plain](http://blog.csdn.net/maosidiaoxian/article/details/43148643#)<span class="tracking-ad" data-mod="popu_168"><span class="tracking-ad" data-mod="popu_168"> [copy](http://blog.csdn.net/maosidiaoxian/article/details/43148643#)</span></span> <div> <embed id="ZeroClipboardMovie_2" src="http://static.blog.csdn.net/scripts/ZeroClipboard/ZeroClipboard.swf" type="application/x-shockwave-flash" width="18" height="18" align="middle" name="ZeroClipboardMovie_2"> </embed> </div> <span class="tracking-ad" data-mod="popu_167">[![在CODE上查看代码片](https://code.csdn.net/assets/CODE_ico.png)](https://code.csdn.net/snippets/589055)</span><span class="tracking-ad" data-mod="popu_170">[![派生到我的代码片](https://code.csdn.net/assets/ico_fork.svg)](https://code.csdn.net/snippets/589055/fork)</span> </div> </div> - buildscript { - repositories { - jcenter() - } - dependencies { - classpath <span class="string">&#8216;com.jfrog.bintray.gradle:gradle-bintray-plugin:1.0&#8217;</span> - } - } 再加上一句: **[java]** [view plain](http://blog.csdn.net/maosidiaoxian/article/details/43148643#)<span class="tracking-ad" data-mod="popu_168"><span class="tracking-ad" data-mod="popu_168"> [copy](http://blog.csdn.net/maosidiaoxian/article/details/43148643#)</span></span> <div> <embed id="ZeroClipboardMovie_3" src="http://static.blog.csdn.net/scripts/ZeroClipboard/ZeroClipboard.swf" type="application/x-shockwave-flash" width="18" height="18" align="middle" name="ZeroClipboardMovie_3"> </embed> </div> <span class="tracking-ad" data-mod="popu_167">[![在CODE上查看代码片](https://code.csdn.net/assets/CODE_ico.png)](https://code.csdn.net/snippets/589055)</span><span class="tracking-ad" data-mod="popu_170">[![派生到我的代码片](https://code.csdn.net/assets/ico_fork.svg)](https://code.csdn.net/snippets/589055/fork)</span> </div> </div> - apply from: <span class="string">&#8216;你的bintray.gradle的相对路径&#8217;</span> 你的bintray.gradle可以参考我这个项目的bintray.gradle 来写一下。我这里的bintray.gradle是用来发布android项目的,发布的文件包括源码,文档以及AAR,如果你也是要发布这些,则可以直接使用。 执行命令进行发布 配置完成后,执行gradle bintray,即会进行编译、打包以及发布。 包含到jcenter中央库 先进入此页面:https://bintray.com/bintray/jcenter。 然后点击Include My Package,如下图: ![](http://img.blog.csdn.net/20150202091406259?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbWFvc2lkaWFveGlhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center) 然后在弹出的对话框中搜索并勾上你的项目。 ![](http://img.blog.csdn.net/20150202091431609?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbWFvc2lkaWFveGlhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center) 然后你可以写一下你的提交请求(貌似也可以不写?),点“Send”,接下来就看管理员审核了。 ![](http://img.blog.csdn.net/20150202091438535?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbWFvc2lkaWFveGlhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center) 审核 等待管理员审核。通常都很快能通过。如果你比较心急,那么在审核通过之前,可以以maven {url http://dl.bintray.com/你的用户名/maven}的方式对你的仓库进行声明。 ## 补充说明 如果添加上这段脚本之后,在android studio中运行项目会出错,请注释apply from那一句。出错原因在于它会找不到我打包aar的那个任务,但是在命令行下是可以的。如果有更好的打包aar的方法,欢迎交流。

2016年3月16日 · 1 分钟 · 天边的星星

[Publish AAR To Maven] 使用 Gradle 发布 AAR 到 Maven 仓库

======================================================== 作者:qiujuer 博客:blog.csdn.net/qiujuer 网站:www.qiujuer.net 开源库:github.com/qiujuer/Genius-Android 转载请注明出处:http://blog.csdn.net/qiujuer/article/details/44195131 ——学之开源,用于开源;初学者的心态,与君共勉! ======================================================== 有一个好的库想与世界的伙伴分享,于是共享到GitHub上,于是有人看到了,但是要使用却发现配置非常难。但是发现别人的库只需要一行代码却能使用;于是我想知道为什么能这么简单。 在这篇文章中将带你了解如何发布你的库到远程仓库Maven中,又如何使用。 # <a name="t0"></a>准备 开始之前我们有一定的准备工作,如果准备好了那么后面将会非常顺畅。 - [注册 https://issues.sonatype.org 账户](http://blog.csdn.net/qiujuer/article/details/44195199),并创建你的 Group Id - 学会GPGTools的使用,并生成你的密钥对;见:[使用GPG对文件进行签名加密](http://blog.csdn.net/qiujuer/article/details/44173611) - 编写你的库,并准备好发布,工具:[Android-Studio](http://blog.csdn.net/qiujuer/article/details/41843095) - 添加发布Maven的Gradle文件 - 添加你的个人信息,如你的发布地址、库版本信息等 - 开发发布快照、以及正式版本,审核 # <a name="t1"></a>开始 前面的两项工作由于篇幅较大,单独开篇了,欢迎大家去看~~,我们从第三的地方开始。 ## <a name="t2"></a>编写Lib 编写库,这里我采用的是Android-Studio;至于其使用建立过程以及简单使用大家可见:[环境配置之正式版Android Studio 1.0](http://blog.csdn.net/qiujuer/article/details/41843095) 在这里我使用 [Genius-Android](https://github.com/qiujuer/Genius-Android) 开源库进行演示。 在本次项目中我们尝试发布 UI 部分,图中圈起来部分为我们需要的文件。 ## <a name="t3"></a>编写发布文件 发布文件就是其中的 **maven_push.gradle** 。由于代码较长就不贴代码了,大家可以去GitHub上查看。 代码已经发布到 BeFoot 开源项目中. 该代码运行在 Gradle 中,作用是按照配置进行打包代码文件,然后签名文件,最后发布你的文件到仓库。 在该代码中可以看见许多的方法与参数,如: ``` def isReleaseBuild() { &lt;span class="hljs-keyword">return&lt;/span> VERSION_NAME.contains(&lt;span class="hljs-string">"SNAPSHOT"&lt;/span>) == &lt;span class="hljs-keyword">false&lt;/span> } ...

2016年3月16日 · 2 分钟 · 天边的星星

使用Gradle发布项目到JCenter仓库

编辑推荐:稀土掘金,这是一个针对技术开发者的一个应用,你可以在掘金上获取最新最优质的技术干货,不仅仅是Android知识、前端、后端以至于产品和设计都有涉猎,想成为全栈工程师的朋友不要错过! 原文:使用Gradle发布项目到JCenter仓库 这篇文章介绍通过Gradle把开源项目发布到公共仓库JCenter中,方便你我他的事情,我们都是很懒的嘛。JCenter现在是Android Studio中repositories的默认节点了,之前是Maven的,不过JCenter是兼容Maven的,所以放心使用。步骤基本是按Publishing Gradle Android Library to jCenter Repository这里来的,英文能看的直接看这篇也行。下面我的步骤正式开始,发布到JCenter仓库的是我的项目:BounceProgressBar。 申请Bintray账号 Bintray的基本功能类似于Maven Central,一样的我们需要一个账号,Bintray传送门,注册完成后第一步算完成了。 生成项目的JavaDoc和source JARs 简单的说生成的这两样东西就是我们在下一步中上传到远程仓库JCenter上的文件了。这一步需要android-maven-plugin插件,所以我们需要在项目的build.gradle(Top-level build file,项目最外层的build.gradle文件)中添加这个构建依赖,如下: 1 <div class="line number2 index1 alt1"> 2 </div> <div class="line number3 index2 alt2"> 3 </div> <div class="line number4 index3 alt1"> 4 </div> <div class="line number5 index4 alt2"> 5 </div> <div class="line number6 index5 alt1"> 6 </div> <div class="line number7 index6 alt2"> 7 </div> <div class="line number8 index7 alt1"> 8 </div> <div class="line number9 index8 alt2"> 9 </div> <div class="line number10 index9 alt1"> 10 </div> <div class="line number11 index10 alt2"> 11 </div> <div class="line number12 index11 alt1"> 12 </div> <div class="line number13 index12 alt2"> 13 </div> <div class="line number14 index13 alt1"> 14 </div> <div class="line number15 index14 alt2"> 15 </div> <div class="line number16 index15 alt1"> 16 </div> </td> <td class="code"> <div class="container"> <div class="line number1 index0 alt2"> `buildscript {` </div> <div class="line number2 index1 alt1"> ` ``repositories {` </div> <div class="line number3 index2 alt2"> ` ``jcenter()` </div> <div class="line number4 index3 alt1"> ` ``}` </div> <div class="line number5 index4 alt2"> ` ``dependencies {` </div> <div class="line number6 index5 alt1"> ` ``classpath ``'com.android.tools.build:gradle:1.0.0'` </div> <div class="line number7 index6 alt2"> ` ``classpath ``'com.github.dcendents:android-maven-plugin:1.2'` </div> <div class="line number8 index7 alt1"> ` ``// NOTE: Do not place your application dependencies here; they belong` </div> <div class="line number9 index8 alt2"> ` ``// in the individual module build.gradle files` </div> <div class="line number10 index9 alt1"> ` ``}` </div> <div class="line number11 index10 alt2"> `}` </div> <div class="line number12 index11 alt1"> `allprojects {` </div> <div class="line number13 index12 alt2"> ` ``repositories {` </div> <div class="line number14 index13 alt1"> ` ``jcenter()` </div> <div class="line number15 index14 alt2"> ` ``}` </div> <div class="line number16 index15 alt1"> `}` </div> </div> </td> </tr> </table> 然后在你需要发布的那个module(我这里的即是library)的build.gradle里配置如下内容: ...

2016年3月16日 · 11 分钟 · 天边的星星

Gradle脚本基础全攻略

**【工匠若水 [http://blog.csdn.net/yanbober](http://blog.csdn.net/yanbober) 转载请注明出处。[点我开始Android技术交流](https://github.com/yanbober/AndroidCommunication)】** # <a name="t0"></a>**1 背景** 在开始Gradle之前请务必保证自己已经初步了解了Groovy脚本,特别是闭包规则,如果还不了解Groovy则可以先看[《Groovy脚本基础全攻略》](http://blog.csdn.net/yanbober/article/details/49047515)这一篇博客速成一下Groovy基础,然后再看此文即可。关于Gradle速成干货基础详情也请参考[Geadle官方网站](https://www.gradle.org/),不好意思我太Low了。 ![这里写图片描述](http://img.blog.csdn.net/20151025165437078) Gradle核心是基于Groovy的领域特定语言(DSL,具体概念参见[《Groovy脚本基础全攻略》](http://blog.csdn.net/yanbober/article/details/49047515)),具有非常好的扩展性,所以不管是简单的独立项目还是大型的多项目构建它都能高效的提高构建任务,尤其对多项目支持是非常牛逼的;Gradle还提供了局部构建功能,譬如构建一个单独子项目时它会构建这个子项目依赖的所有子项目;当然了他对远程仓库和本地库的支持也很到位;哎呀,总之后面你就明白他的牛逼之处了。 既然Gradle核心是Groovy,Groovy本质又是Java,所以很明显可以发现Gradle环境必须依赖JDK与Groovy库,具体如下: - JDK版本必须是JDK6以上; - 因为Gradle自带Groovy库, 所以已安装的Groovy会被Gradle忽略; 具体Gradle环境配置好了以后如下图: ![这里写图片描述](http://img.blog.csdn.net/20151022113143209) **【工匠若水 [http://blog.csdn.net/yanbober](http://blog.csdn.net/yanbober) 转载请注明出处。[点我开始Android技术交流](https://github.com/yanbober/AndroidCommunication)】** # <a name="t1"></a>**2 Gradle DSL基础** Gradle的实质是配置脚本,执行一种类型的配置脚本时就会创建一个关联的对象,譬如执行Build script脚本就会创建一个Project对象,这个对象其实就是Gradle的代理对象。下面给出来各种类型Gradle对应的对象类型: <table> <tr> <th> 脚本类型 </th> <th> 关联对象类型 </th> </tr> <tr> <td> Build script </td> <td> Project </td> </tr> <tr> <td> Init script </td> <td> Gradle </td> </tr> <tr> <td> Settings script </td> <td> Settings </td> </tr> </table> Gradle的三种主要对象解释如下: - Project对象:每个build.gradle会转换成一个Project对象。 - Gradle对象:构建初始化时创建,整个构建执行过程中只有这么一个对象,一般很少去修改这个默认配置脚本。 - Settings对象:每个settings.gradle会转换成一个Settings对象。 可以看见,当我们编写指定类型Gradle脚本时我们可以直接使用关联对象的属性和方法;当然了,每个脚本也都实现了Script接口,也就是说我们也可以直接使用Script接口的属性与方法。 ## <a name="t2"></a>**2-1 构建脚本Build script(Project)** 在Gradle中每个待编译的工程都是一个Project(每个工程的build.gradle对应一个Project对象),每个Project在构建的时候都包含一系列Task,这些Task中很多又是Gradle的插件默认支持的。 PS:所谓的我们编写Gradle脚本,实质大多数时候都是在编写构建脚本Build script,所以说Project和Script对象的属性和方法等API非常重要。 每一个Project对象和build.gradle一一对应,一个项目在构建时都具备如下流程: - 为当前项目创建一个Settings类型的实例。 - 如果当前项目存在settings.gradle文件,则通过该文件配置刚才创建的Settings实例。 - 通过Settings实例的配置创建项目层级结构的Project对象实例。 - 最后通过上面创建的项目层级结构Project对象实例去执行每个Project对应的build.gradle脚本。 ## <a name="t3"></a>**2-2 初始化脚本Init script(Gradle)和设置脚本Settings script(Settings)** **Gradle对象:** 初始化脚本Init script(Gradle)类似于Gradle的其他类型脚本,这种脚本在构建开始之前运行,主要的用途是为接下来的Build script做一些准备工作。我们如果需要编写初始化脚本Init script,则可以把它按规则放置在USER_HOME/.gradle/相关目录下。譬如: ![这里写图片描述](http://img.blog.csdn.net/20151025171346780) 初始化脚本的Gradle对象代表了Gradle的调运,我们可以通过调用Project对象的getGradle()方法获得Gradle实例对象。 **Settings对象:** 在对工程进行配置(譬如多项目树构建)时Settings实例与settings.gradle文件一一对应,它用来进行一些项目设置的配置。这个文件一般放置在工程的根目录。譬如: ![这里写图片描述](http://img.blog.csdn.net/20151025171558864) ## <a name="t4"></a>**2-3 Build生命周期** Gradle的构建脚本生命周期具备三大步,如下: ![这里写图片描述](http://img.blog.csdn.net/20151025173643212) 可以看见,生命周期其实和上面构建脚本Build script的执行流程是可以关联上的。有了这个流程图我们接下里详细看下每个过程。 **settings.gradle文件:** 除了构建脚本文件,Gradle还定义了一个约定名称的设置文件(默认为settings.gradle)。该文件在初始化阶段被执行,对于多项目构建必须保证在根目录下有settings.gradle文件,对于单项目构建设置文件是可选的,不过建议还是写上。 如下是单项目构建的一个例子: ``` &lt;span class="hljs-comment">//settings.gradle&lt;/span> &lt;span class="hljs-built_in">println&lt;/span> &lt;span class="hljs-string">'This is executed during the initialization phase.'&lt;/span> ...

2015年12月2日 · 17 分钟 · 天边的星星