新一代構件工具Gradle

2020-10-19 16:00:22

(一)你必須知道的事

  • idea不同版本對gradle版本的支援程度不同,idea版本最好為2019以上
  • SpringBoot版本對gradle的版本也有要求

(二)groovy基礎知識瞭解

(三)閉包

(四)構建指令碼解析

說明:一個專案代表一個正在構建得元件(比如一個jar檔案),當構建啟動後,Gradle會基於build.gradle範例化一個org.gradle.api.Project類,並且能夠通過project變數使其隱式可用

(五)Gradle構建多模組專案

(六)解決版本依賴衝突的方法

// 有版本衝突時啟動失敗
configurations.all {
    resolutionStrategy {
        failOnVersionConflict()
    }
}

// 定義變數統一版本方法  ext為Project的隱式方法 可以在其中定義變數
ext {
    //Dependencies
    supportLibraryVersion = '25.3.1'
    okHttpVersion = '3.8.0'
    domainTestDependencies = [
            appcompatv7: "com.android.support:appcompat-v7:${supportLibraryVersion}",
            okHttp     : "com.squareup.okhttp3:okhttp:${okHttpVersion}"
    ]
}


// 排除對應的版本
implementation ('com.carlos.test:Test:1.0.0') {
    exclude group: "io.reactivex.rxjava2",module: "rxjava"
    // exclude group: "io.reactivex.rxjava2:rxjava:2.1.11"
}
implementation 'io.reactivex.rxjava2:rxjava:2.1.13'



// 強制使用一個版本
configurations.all {
    resolutionStrategy {
        force 'io.reactivex.rxjava2:rxjava:2.1.13'
    }
}

(七)Repository中依賴倉庫

// repositories() 方法,引數是{}程式碼塊
repositories {

    // 執行順序從上往下
    // 指定私服
    maven {
        url "192.168.*.*/maven/public"
    }
    mavenCentral()
}