最近碰到一些关于gradle的小问题,然后在网上看了一些资料。整理了一下:
1、什么是gradle?
gradle本身也是一种编程语言。他的特点是(来科普一下^_^):
1>基于Groovy的特定领域语言(DSL)来声明项目设置,抛弃了基于XML的各种繁琐配置。(反正就是一种特殊的配置语言)
2>支持Java、Groovy、Scale中使用,而Android目前开发用的主流还是使用Java,(就算是H5做的Android app也会要用到Java的)
3>是基于Apache Ant 和Apache Maven概念的项目自动化构建工具(说了这么一大堆,其实就是说他是一个项目自动化构建工具)。
* 哪两个东东都是Apache基金会两个流弊的项目,想了解自行百度吧。
是不是上面笼统的概念,让你发现,本来只是不知道gradle是什么,看完以后发现有更多的名词不懂了。反正我刚开始是这样觉得,下面来点实际的,抛开那些理论家的描述把~~
2、gradle有料
2.1 打开一个Android项目,你会看到(用AS的朋友才能看到,用Eclipse的童鞋另谋高就吧)
总的来说最重要的有这样几个文件:
1>build.gradle
2>gradle.properties
3>settongs.gradle
2.2 分别介绍一下:
1>build.gradle文件:这个文件是用来构建项目的,在文件中指定要构建的项目和要执行的任务。
2>gradle.properties文件:用来配置属性的,常见的有设置各种最大存储空间之类的
3>settings.gradle文件:通常是一句:include ‘:app’ 反正就是关联你做的应用的。(你的src的工程父目录是什么,include的值就是什么)
2.3有料:首先,你会发现build.gradle文件本来就有两个,其中在app目录下的那个是本工程(或者说是本项目)的工程配置构建文件;另一个是Gradle的配置文件。这两者是不一样的。
前者文件中的内容是:
apply plugin: ‘com.android.appliction’ 这句话是说,配置构建的是一个Android应用。
然后下面的 android {…} 一段是描述具体Android应用的
包括 compileSdkVersion 指定编译的SDK版本
buildToolsVersion 构建工具的版本
defaultConfig 默认的配置
applicationId 应用的ID(一般是你的应用的包名)
至于那些什么minSdkVersion、targetSdkVersion、versionCode、versionName,应该有些似曾相识的味道。没错就跟清单配置文件里的声明一样。
然后是buildTypes这个应该是构建的类型。
dependencies {…} 这一堆是非常重要的。里面一般写的是你导入的第三方.jar文件。
一般导入.jar文件有这样几句语法:
compile files(‘libs/xxx.jar’) (这种是将.jar文件放在了libs目录下)
compile fileTrace(include:[‘*.jar’], dir:’libs’) (这种是将libs目录下的所有.jar文件都导入进来)
testCompile ‘[group]:[name]:[version]’ 测试用到的.jar文件
compile ‘[group]:[name]:[version]’ 其中group表示要导入的.jar文件的包名,例如org.apache.http,name表示.jar的名字比如client, version 表示 .jar的版本号,例如4.1.2 ,那么就有compile ‘org.apache.http : client : 4.12’表示导入httpClient4.1.2.jar这个包。
这次总结的都是写浅薄的认识,后续了解多了再总结~~~