Gradle 排除传递依赖
1、概览 Gradle 是一款构建自动化工具,用于管理和自动化应用程序的构建、测试和部署过程。
使用基于 Groovy 或 Kotlin 的 DSL(Domain-Specific Language)来定义构建任务,可以轻松地自动定义和管理项目中所需的依赖。
本文将带你了解在 Gradle 中排除传递依赖的几种方法。
2、传递依赖是什么? 假设我们使用的 A 依赖于另一个库 B。默认情况下,当我们包含 A 时,Gradle 会自动将 B 添加到项目的 classpath 中,这样,即使我们没有明确地将 B 添加为依赖,也可以在项目中使用 B 的代码。
来看一个实际的例子,在项目中定义 Google Guava 依赖:
dependencies { // ... implementation 'com.google.guava:guava:31.1-jre' } 如果 Google Guava 与其他库存在依赖关系,那么 Gradle 会自动包含这些其他库。
要查看项目中使用的依赖项,可以使用如下命令将其打印出来:
./gradlew <module-name>:dependencies 假设我们的模块名为 excluding-transitive-dependencies:
./gradlew excluding-transitive-dependencies:dependencies 输出如下:
testRuntimeClasspath - Runtime classpath of source set 'test'. \--- com.google.guava:guava:31.1-jre +--- com.google.guava:failureaccess:1.0.1 +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava +--- com.google.code.findbugs:jsr305:3.0.2 +--- org.