Grade 全局參數(shù)定義
實(shí)際開發(fā)中設(shè)置公共的編譯依賴參數(shù)等。
方法一:
在項(xiàng)目外層的build.gradle文件中定義,格式如下:
文件名:build.gradle
ext {
? ? sourceCompatibility = JavaVersion.VERSION_1_7
? ? targetCompatibility = JavaVersion.VERSION_1_7
? ? compileSdkVersion = 25
? ? buildToolsVersion = '25.0.3'
? ? minSdkVersion = 19
? ? targetSdkVersion = 26
? ? supportVersion = '25.3.1'
? ? supportV7CardView = "com.android.support:cardview-v7:${supportVersion}"
? ? supportV4 = "com.android.support:support-v4:${supportVersion}"
? ? supportFragment = "com.android.support:support-fragment:${supportVersion}"
? ? ...
}
在各個module的build.grade文件中獲取以上定義變量方法為:
rootProject.ext.supportDesign
rootProject.ext.supportFragment
rootProject.ext.supportAnnotations
rootProject.ext.supportV7AppCompat
rootProject.ext.supportV7RecyclerView
rootProject.ext.supportV7CardView
方法二:
在gradle.properties中定義整個工程的全局gradle變量
在gradle.properties中定義如下變量
ANDROID_BUILD_MIN_SDK_VERSION=15
ANDROID_BUILD_TARGET_SDK_VERSION=23
ANDROID_BUILD_SDK_VERSION=23
ANDROID_BUILD_TOOLS_VERSION=23.0.2
在所有build.gradle中可以這樣使用:
compileSdkVersion Integer.parseInt(project.ANDROID_BUILD_SDK_VERSION)
buildToolsVersion project.ANDROID_BUILD_TOOLS_VERSION
方法三:
可以在根目錄下建個config.gradle:
config.gradle文件內(nèi)容如下:
ext {
? ? android = [
? ? ? ? ? ? compileSdkVersion: 23,
? ? ? ? ? ? buildToolsVersion: "23.0.2",
? ? ? ? ? ? minSdkVersion? ? : 14,
? ? ? ? ? ? targetSdkVersion : 22,
? ? ]
? ? dependencies = [
? ? ? ? ? ? appcompatV7': 'com.android.support:appcompat-v7:23.2.1',
? ? ? ? ? ? design? ? ? : 'com.android.support:design:23.2.1'
? ? ]
}
然后只需在根目錄下build.gradle最頂部加上下面一行代碼,然后同步下,意思就是所有的子項(xiàng)目或者所有的modules都可以從這個配置文件里讀取內(nèi)容。
apply from: "config.gradle"
在app/build.gradle中使用調(diào)用如下:
android {
? ? compileSdkVersion rootProject.ext.android.compileSdkVersion
? ? buildToolsVersion rootProject.ext.buildToolsVersion
? ? defaultConfig {
? ? ? ? applicationId "com.example.android"
? ? ? ? minSdkVersion rootProject.ext.android.minSdkVersion
? ? ? ? targetSdkVersion rootProject.ext.android.targetSdkVersion
? ? ? ? versionCode 1
? ? ? ? versionName "1.0"
? ? }
...
dependencies {
? ? compile fileTree(dir: 'libs', include: ['*.jar'])
? ? testCompile 'junit:junit:4.12'
? ? compile rootProject.ext.dependencies.appcompatV7
? ? compile rootProject.ext.dependencies.design
}