gradle使用技巧(def定義變數 rootProject.ext 新增全域性變數)
在主app目錄下的build.gradle中我們可以這樣寫:
def packageTime() { return new Date().format("yyyy-MM-dd") } def versionMajor = 1 def versionMinor = 1 def versionPatch = 0 android { compileSdkVersion rootProject.ext.android.compileSdkVersion buildToolsVersion rootProject.ext.android.buildToolsVersion defaultConfig { applicationId "com.syinix.android" minSdkVersion rootProject.ext.android.minSdkVersion targetSdkVersion rootProject.ext.android.targetSdkVersion versionCode 1 versionName "${versionMajor}.${versionMinor}.${versionPatch}" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } signingConfigs { debug { keyAlias 'androiddebugkey' keyPassword 'android' storeFile file('/Users/kokawaki/.android/debug.keystore') storePassword 'android' } releaseConfig { storeFile"${System.env.MY_APP_PRIVATE_KEY}" keyAlias"${System.env.MY_APP_ALIAS}" storePassword "${System.env.MY_APP_STORE_PW}" keyPassword"${System.env.MY_APP_PW}" } } } dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) //官方庫 implementation rootProject.ext.supportLibs }
同學大概也看到上面程式碼中出現了3種使用變數的用法:
def|${System.env.xx} | rootProject.ext.xx
首先講一下 def ,這個就很容易理解 是用來定義變數的關鍵字類似js中的var、let、const。
${System.env.xx}是指在在根目錄下的gradle.properties檔案裡去新增引數如下圖:
rootProject.ext.xx的用法就有2種了:
一種是在根目錄下的build.gradle檔案裡去新增如下圖:
還有一種寫法就清爽一點了,把它放到另一個單獨的xxx.gradle檔案中去,然後在根目錄下的build.gradle檔案中去引入,如下圖:
根目錄下的build.gradle檔案中去引入的寫法就一行程式碼,在頂部寫下apply from: "config.gradle"
,這種很方便更新元件庫、官方庫版本等只需要改另一個地方而不需要去動app目錄下的build.gradle檔案。
——————— 本文來自 少華一號 的CSDN 部落格 ,全文地址請點選:https://blog.csdn.net/u012982629/article/details/81121717?utm_source=copy