版本帝 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 的依賴項。下面介紹幾種復雜的例子:
別名 | 訪問名稱 |
---|---|
guava | libs.guava |
commons-lang3 | libs.commons.lang3 |
androidx.awesome.lib | libs.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)一管理依賴項版本,十分方便。
-
模塊
+關注
關注
7文章
2655瀏覽量
47292 -
編碼
+關注
關注
6文章
932瀏覽量
54731 -
插件
+關注
關注
0文章
320瀏覽量
22396 -
gradle
+關注
關注
0文章
26瀏覽量
694
發(fā)布評論請先 登錄
相關推薦
評論