0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

Gradle版本目錄功能的簡單應用

科技綠洲 ? 來源:Java技術指北 ? 作者:Java技術指北 ? 2023-09-30 11:12 ? 次閱讀

版本帝 Gradle 最新版本已經(jīng)到了 8.1.1 ,你是不是還在用著 Gradle 3 的功能?今天我們了解一下 Gradle 7.0 之后推出的新功能 Version Catalog 版本目錄。


0. 概述

Gradle 版本目錄是 Gradle7 中引入的新功能。使用 Gradle 版本目錄,您可以在擁有多個模塊時更輕松地管理依賴項和插件。您不必對各個 build 文件中的依賴項名稱和版本進行硬編碼,也不必在每次需要升級依賴項時都更新每個條目,而是可以創(chuàng)建一個包含依賴項的中央版本目錄。

1. 創(chuàng)建版本目錄文件

首先創(chuàng)建一個版本目錄文件。在根項目的 gradle 文件夾中,創(chuàng)建一個名為 libs.versions.toml 的文件。Gradle 默認會在 libs.versions.toml 文件中查找目錄,因此我們建議使用此默認名稱。

注意:您可以更改目錄文件名;但是,這需要更改 build 文件,因此不建議這樣做。

libs.versions.toml 文件中,添加以下內(nèi)容:

[versions]

[libraries]

[bundles]

[plugins]
  • versions部分用于聲明可以被依賴項引用的版本
  • libraries部分用于聲明坐標的別名
  • bundles部分用于聲明依賴包
  • plugins部分用于聲明插件

2. 遷移依賴項

先看一下之前我們是如何引入依賴項的:

dependencies {
    implementation 'com.jcraft:jsch:0.1.55'
}

遷移到版本目錄后的引入方式:

# libs.versions.toml 文件
[versions]
jsch = "0.1.55"

[libraries]
jsch = { group = "com.jcraft", name = "jsch", version.ref = "jsch" }
# build.gradle 文件
dependencies {
   implementation libs.jsch
}

3. 別名規(guī)范

從上面的簡單例子中,我們可以從libs中通過別名jsch獲取 jsch 的依賴項。下面介紹幾種復雜的例子:

別名訪問名稱
guavalibs.guava
commons-lang3libs.commons.lang3
androidx.awesome.liblibs.androidx.awesome.lib

在聲明依賴項的別名時建議使用 kebab-case(例如 commons-lang3),以便在 build 文件中獲得更好的代碼補全幫助。

4. 打包依賴項

如果有多個依賴項強關聯(lián),必須同時引用的情況,如下:

dependencies {
    implementation 'org.junit.jupiter:junit-jupiter-api:5.9.3'
    implementation 'org.junit.jupiter:junit-jupiter-engine:5.9.3'
    implementation 'org.junit.jupiter:junit-jupiter-params:5.9.3'
}

我們可以在libs.versions.toml 文件中使用bundles將其打成一個包:

[versions]
jupiter = "5.9.3"

[libraries]
junit-jupiter-api = { group = "org.junit.jupiter", name = "junit-jupiter-api", version.ref = "jupiter" }
junit-jupiter-engine = { group = "org.junit.jupiter", name = "junit-jupiter-engine", version.ref = "jupiter" }
junit-jupiter-params = { group = "org.junit.jupiter", name = "junit-jupiter-params", version.ref = "jupiter" }

[bundles]
junit-jupiter = ["junit-jupiter-api", "junit-jupiter-engine", "junit-jupiter-params"]

然后在build.gradle中引用:

dependencies {
    implementation libs.junit.jupiter
}

5. 遷移插件

遷移插件與依賴項的遷移一樣,在 libs.versions.toml 文件的 [versions] 和 [plugins] 部分,為每個插件添加一個條目。然后將 build.gradle 文件中 plugins{} 代碼塊內(nèi)的聲明替換為相應的目錄名稱。

以下代碼段展示了移除插件之前的 build.gradle 文件:

plugins {
   id("com.android.application")
}

遷移后:

[versions]
androidGradlePlugin = "7.4.1"

[plugins]
android-application = { id = "com.android.application", version.ref = "androidGradlePlugin" }
plugins {
   id(libs.plugins.android.application)
}

6. 小結

以上就是對 Gradle 版本目錄功能的簡單應用,統(tǒng)一管理依賴項版本,十分方便。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 模塊
    +關注

    關注

    7

    文章

    2655

    瀏覽量

    47292
  • 編碼
    +關注

    關注

    6

    文章

    932

    瀏覽量

    54731
  • 插件
    +關注

    關注

    0

    文章

    320

    瀏覽量

    22396
  • gradle
    +關注

    關注

    0

    文章

    26

    瀏覽量

    694
收藏 人收藏

    評論

    相關推薦

    gradle安裝與配置unity

    ://gradle.org/install/)并下載適用于你的操作系統(tǒng)的最新版本Gradle。根據(jù)你的操作系統(tǒng),選擇相應的發(fā)行版并根據(jù)指示進行
    的頭像 發(fā)表于 12-07 14:48 ?1953次閱讀

    Android Studio與Gradle深入

    ://jcenter.bintray.com/" }  下載不到特定的版本  Maven 和 Gradle 都會有一個緩存庫,默認安裝的情況下,是在用戶根目錄下的 .m2 或者 .gradle
    發(fā)表于 08-31 17:58

    HarmonyOS初步探索04:使用DevEco Studio時設置Gradle倉庫代替

    解決內(nèi)部環(huán)境或企業(yè)內(nèi)網(wǎng)環(huán)境問題,經(jīng)常訪問Maven倉庫比較困難,此時可以設置Gradle倉庫倉庫。1)在用戶目錄新建一個 .gradle文件夾,某些 我的機器登錄 帳戶是lwx48xxxx,那么具體
    發(fā)表于 12-15 14:26

    DevEco報錯不能順利進入gradle8.0怎么解決?

    報錯內(nèi)容為:此版本中使用了已棄用的 Gradle 功能,使其與 Gradle 8.0 不兼容。翻譯一下,大概有些人說這個中外使用了Gradle
    發(fā)表于 04-21 11:15

    DevEco Studio自動配置gradle的方法分享

    方法①在項目右鍵 Find in Path輸入gradle-5.4.1-all.zip方法②下載gradle-5.4.1-all.zip解壓至不要含有中文名稱的目錄比如我解壓后的路徑是D
    發(fā)表于 06-09 10:26

    谷歌 Android Studio 和 Gradle 插件使用全新版本編號

    在 Canary 通道已正式發(fā)布。在此版本中,調整了 Android Studio 和 Gradle 插件的版本編號方案。此項變更將 Gradle 插件從 Android Studio
    的頭像 發(fā)表于 12-11 10:49 ?1582次閱讀

    簡單實用的頁面多狀態(tài)布局

    狀態(tài):主功能完成 調用差異:無 開發(fā)版本:sdk6,DevEco Studio2.2 beta1 基線版本:Release v1.0.1 安裝教程 在moudle級別下的build.gradl
    發(fā)表于 03-21 11:21 ?6次下載
    <b class='flag-5'>簡單</b>實用的頁面多狀態(tài)布局

    簡單好用的陰影庫能實現(xiàn)各種陰影效果

    差異:無 開發(fā)版本:sdk6,DevEco Studio2.2 Beta1 基線版本: master分支 安裝教程 1.在項目根目錄下的build.gradle文件中, 2.在entr
    發(fā)表于 03-21 14:12 ?1次下載
    <b class='flag-5'>簡單</b>好用的陰影庫能實現(xiàn)各種陰影效果

    簡單的易于集成的相機Fragment

    版本:sdk6,DevEco Studio2.2 Beta1 基線版本:Release 1.0.10 安裝教程 1.在項目根目錄下的build.gradle文件中, allprojec
    發(fā)表于 03-22 13:56 ?3次下載

    簡單的照片編輯器案例分享

    項目介紹 項目名稱:Ananas 所屬系列:openharmony的第三方組件適配移植 功能:一個簡單的照片編輯器 項目移植狀態(tài):主功能完成 調用差異:無 開發(fā)版本:sdk6,DevE
    發(fā)表于 03-23 09:35 ?0次下載
    <b class='flag-5'>簡單</b>的照片編輯器案例分享

    gradle和gradlew的區(qū)別?

    你會注意到輸出里打印了 Gradle版本,它對應著你運行的 gradle 命令在設備中的 Gradle 安裝包版本。這聽起來有點廢話,但
    的頭像 發(fā)表于 12-13 09:57 ?1522次閱讀

    Gradle入門知識之Gradle詳解

    大家回想一下自己第一次接觸`Gradle`是什么時候? 相信大家也都是和我一樣,在我們打開第一個AS項目的時候, 發(fā)現(xiàn)有很多帶gradle字樣的文件:`setting.gradle, build.
    的頭像 發(fā)表于 03-30 10:47 ?2478次閱讀
    <b class='flag-5'>Gradle</b>入門知識之<b class='flag-5'>Gradle</b>詳解

    Gradle入門知識之Gradle語法1

    很多開發(fā)喜歡把`Gradle`簡單定義為一種構建工具,和`ant,maven`等作用類似, 誠然Gradle確實是用來做構建,但是如果簡單得把Gr
    的頭像 發(fā)表于 03-30 10:54 ?964次閱讀
    <b class='flag-5'>Gradle</b>入門知識之<b class='flag-5'>Gradle</b>語法1

    Gradle入門知識之Gradle語法2

    很多開發(fā)喜歡把`Gradle`簡單定義為一種構建工具,和`ant,maven`等作用類似, 誠然Gradle確實是用來做構建,但是如果簡單得把Gr
    的頭像 發(fā)表于 03-30 10:54 ?702次閱讀

    Gradle中的版本使用

    文章。 Java 中的版本處理 在了解 Gradle 中的 sourceCompatiblity 和 targetCompatibility 之前, 我們先來看看 Java 在編譯的時候,是怎么處理
    的頭像 發(fā)表于 09-25 15:32 ?544次閱讀