Java Gradle 插件 -- 配置第三方依賴

----《Android Gradle 權威指南》學習筆記

總目錄:Gradle 學習系列 -- 目錄

上一篇:Java Gradle 插件 -- 應用及項目結構

  1. 在項目中會不可避免地用到第三方庫,要想使用第三方依賴,需要告訴 Gradle 怎么找到這些依賴,也就是需要在項目進行配置。

  2. 一般情況下都是從倉庫中查找需要的 Jar 包。在 Gradle 中要配置一個倉庫的 Jar 包依賴,首先得告訴 Gradle 使用類型的倉庫,這些倉庫的位置在哪里。這樣 Gradle 才會知道從哪里去查找依賴的庫。

  3. 在 IDE 中默認配置了一個 Maven 中心庫,告訴 Gradle 可以在 Maven 中搜尋項目中依賴的 jar 包。在 build.gradle 中,配置的代碼如下所示:

repositories {
    mavenCentral()
}
  1. 除此之外,也可以從 jcenter 庫、ivy 庫、本地 Maven 庫(mavenLocal)、自己搭建的 Maven 服務器中搜尋,甚至本地配置的文件夾也可以作為一個倉庫。所以說 Gradle 支持的倉庫非常豐富。

  2. 在 Gradle 中也可以多個倉庫以前使用,比如一些公共的開源框架可以從 Maven 上下載,一些私有的 jar 包可以從自己搭建的服務器中下載。比如可以在 build.gradle 中做如下配置:

repositories {
    mavenCentral()
    maven{
        url 'http://www.mavenurl.com'
    }
}
  1. 有了倉庫,就需要通過配置來告訴 Gradle 需要依賴什么,配置依賴是在 dependencies 模塊中。
    (1) 比如在 IDE 中:
dependencies {
    testImplementation 'org.junit.jupiter:junit-jupiter-api:5.7.0'
    testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.7.0'
}

(2) 在 AndroidStudio —> app —> build.gradle 中:

dependencies {
    implementation 'androidx.appcompat:appcompat:1.2.0'
    implementation 'com.google.android.material:material:1.3.0'
    implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
    testImplementation 'junit:junit:4.+'
    androidTestImplementation 'androidx.test.ext:junit:1.1.2'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
}

關于 implementation 、testImplementation 、testRuntimeOnly 這些語法在較早的 Gradle 版本中是 compile、testCompile、testRuntime。相關的語法需要在 Gradle 官方文檔中查找。androidTestImplementation 則需要在 Android Gradle 的文檔中查找。

  1. Java 插件也可以為不同的插件在編譯和運行時指定不同的依賴,比如對一個源碼集指定一個版本,對另一個源碼集合指定另一個版本。在 build.gradle 中有以下代碼:
sourceSets {
    vip {

    }
}
sourceSets {
    vip2 {

    }
}

dependencies {
    testImplementation 'org.junit.jupiter:junit-jupiter-api:5.7.0'
    testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.7.0'

    vipImplementation 'org.junit.jupiter:junit-jupiter-engine:5.8.0'
    vip2Implementation 'org.junit.jupiter:junit-jupiter-engine:5.7.0'
}

當然了,上面的代碼有重復了,可以寫成:

sourceSets {

    vip {

    }
    
    vip2{
        
    }
}
  1. 文件依賴:
dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation files('libs/xxx.jar')
    implementation files('libs/xxxApi.jar')
}
  1. 依賴一個項目:
dependencies {
    implementation project(':xxx-debug')
    implementation project(':xxx-release')
    implementation project(':yyy')
    implementation project(':yyy-debug')
}

依賴項目也可以在 IDE 或 AndroidStudio 中的圖形化界面中完成。

相關代碼:https://gitee.com/fzq.com/gradle-demos
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容