AS项目中,有两个build.gradle,分别为项目级 和 module级。
//项目级:针对module的全局配置,它的作用域所包含的所有module是通过settings.gradle来配置。
./build.gradle
//module级:针对此app更细致的配置
./app/build.gradle
1、build.gradle
根目录的build.gradle的文件结构
//在项目gradle文件中,统一配置引用版本
ext {
configuration = [
package : "com.test.package",
compileVersion : 23,
buildToolsVersion: "23.0.3",
minSdk : 18,
targetSdk : 23,
version_code : 101,
version_name : "1.0.1",
]
//
libraries = [
junit : "4.12",
appcompat_v7 : "24.2.1",
support_v4 : "24.2.1",
support_design : "24.2.1"
]
}
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.1.2'
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
2、app/build.gradle
app文件夹下这个Module的gradle配置文件,是整个项目最主要的gradle配置文件,对配置文件的各项说明如下:
// 声明是Android程序
apply plugin: 'com.android.application'
//表示声明该module为library
//apply plugin: 'com.android.library'
// 基本配置
def cfg = rootProject.ext.configuration
//库配置
def libs = rootProject.ext.libraries
android {
// 编译SDK的版本
compileSdkVersion 23
// build tools的版本
buildToolsVersion "23.0.3"
defaultConfig {
// 应用的包名
applicationId cfg.package
minSdkVersion cfg.minSdk
targetSdkVersion cfg.targetSdk
versionCode cfg.version_code
versionName cfg.version_name
}
// java版本
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
buildTypes {
release {
// 是否进行混淆
minifyEnabled false
// 混淆文件的位置
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
// 移除lint检查的error
lintOptions {
abortOnError false
}
}
//加载libs中的第三方.so文件
task nativeLibsToJar(type: Zip, description: "create a jar archive of the native libs") {
destinationDir file("$projectDir/libs")
baseName "Native_Libs2"
extension "jar"
from fileTree(dir: "libs", include: "**/*.so")
into "lib"
}
dependencies {
// 编译libs目录下的所有jar包
compile fileTree(dir: 'libs', include: ['*.jar'])
//导入的其他包
compile "com.android.support:appcompat-v7: ${libs.appcompat_v7}"
compile "com.android.support:support-v4: ${libs.support_v4}"
}