Android Studio构建系统基础
每一个Module都需要有一个gradle配置文件,语法都是一样,唯一不同的是开头声明的是apply plugin。注意区分不同位置的build.gradle文件。
AS的工程根目录下的build.gradle文件:
buildscript { //设置脚本的运行环境
repositories { //支持java依赖库管理(maven/ivy等),用于项目的依赖
jcenter() //网络仓库,推荐使用这个仓库
}
//依赖包的定义。支持maven/ivy、远程、本地库、单文件,前面定义了repositories{}jcenter库,使用jcenter的依赖只需要按照
//类似于com.android.tools.build:gradle:1.0.0-rc2,gradle就会自动的往远程库下载相应的依赖。
dependencies {
classpath 'com.android.tools.build:gradle:1.0.0-rc2'
}
}
//多项目的集中配置,多数构建工具,对于子项目的配置,都是基于继承的方式。Gradle除了提供继承方式设置子项目,还提供这种配置
allprojects {
repositories {
jcenter()
}
}
AS的工程根目录下的settings.gradle文件:
include ':app' //module
include ':mylib' //module(build as lib)
AS的工程根目录下的Module的build.gradle文件(此处以最基本的Hello World的gradle为例):
//plugin在AS里取值一般为'com.android.library'或者'com.android.application'
apply plugin: 'com.android.application'// 声明是Android程序
//apply plugin: 'com.android.library' //构建为lib
android {
compileSdkVersion 23 // 编译需要SDK的版本
buildToolsVersion "23.0.3" // build tools的版本,SDK Manager确定本地安装该版本才可以
defaultConfig {
// 应用的包名
applicationId "com.example.sping.application1"
minSdkVersion 16 //最小版本
targetSdkVersion 23 //目标版本
versionCode 1
versionName "1.0"
}
buildTypes { //编译项
release {
// 是否进行混淆
minifyEnabled false
// 混淆文件的位置
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
}
//依赖支持
dependencies {
// 编译libs目录下的所有jar包
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:23.3.0'
}