软件项目通常依赖于其他库才能运行。这些库可以来源于同一构建中的其他项目,也可以来源于外部仓库。
Gradle 的依赖管理基础设施提供了 API,用于声明、解析和公开项目所需和提供的二进制文件。
理解 Gradle 中的依赖管理对于将项目组织成组件非常重要。当你想要重用现有库或在管理库版本的同时升级它们时,这一点也很重要。
我们来看一个 Java 项目,其代码依赖于 Guava,Guava 是 Google 核心 Java 库套件。该项目的构建文件包含以下内容:
build.gradle.kts
dependencies {
implementation("com.google.guava:guava:32.1.2-jre") (2)
api("org.apache.juneau:juneau-marshall:8.2.0") (3)
}
build.gradle
dependencies {
implementation("com.google.guava:guava:32.1.2-jre") (2)
api("org.apache.juneau:juneau-marshall:8.2.0") (3)
}
在 dependencies
块中,声明依赖项时有三点需要注意:
-
配置:
implementation
,也称为依赖项所应用的范围。 -
模块 ID:
com.google.guava:guava
由一个group
和一个name
组成,它们是唯一可识别的。 -
版本:
32.1.2-jre
,并非总是必需。
依赖项可以是本地的,也可以是外部的。要让 Gradle 知道在哪里查找外部依赖项,请在 构建文件 中使用 repositories{}
块。
让我们扩展我们的示例:
build.gradle.kts
repositories {
google()
mavenCentral()
}
dependencies {
implementation("com.google.guava:guava:32.1.2-jre") (2)
api("org.apache.juneau:juneau-marshall:8.2.0") (3)
}
build.gradle
repositories {
google()
mavenCentral()
}
dependencies {
implementation("com.google.guava:guava:32.1.2-jre") (2)
api("org.apache.juneau:juneau-marshall:8.2.0") (3)
}
在此示例中,Gradle 从 Maven Central 和 Google 仓库中获取 guava
和 juneau-marshall
依赖项。