首页 >Java >java教程 >如何在 Gradle 中排除特定的传递依赖而不影响其他工件?

如何在 Gradle 中排除特定的传递依赖而不影响其他工件?

Patricia Arquette
Patricia Arquette原创
2024-10-30 02:29:28433浏览

How to Exclude Specific Transitive Dependencies in Gradle Without Affecting Other Artifacts?

在 Gradle 中排除特定的传递依赖

在 Gradle 中,排除传递依赖对于管理依赖和优化构建性能至关重要。这个问题探讨了如何排除特定传递依赖项 org.slf4j:slf4j-log4j12 的所有实例,同时保留其他必要的 slf4j 工件。

首先,使用 runtime.exclude 组设置排除:“org.slf4j ", name: "slf4j-log4j12" 无意中排除了所有 slf4j 工件。为了解决这个问题,有必要使用模块而不是名称来排除传递依赖项,如下所示:

configurations {
  runtime.exclude group: "org.slf4j", module: "slf4j-log4j12"
}

此语法有效地仅排除特定的 slf4j-log4j12 模块,同时允许包含其他 slf4j 工件.

此外,理解 Gradle 中“模块”的概念也至关重要。模块对应于特定的 Maven 工件。 Gradle 根据 Maven 工件的 groupId 和 artifactId 派生出模块,遵循以下约定:

[group]:[artifactId]

因此,对于 org.slf4j:slf4j-log4j12,模块为:

org.slf4j:slf4j-log4j12

通过指定模块,Gradle 可以精确定位和排除特定的传递依赖项,而不会影响不相关的工件。

以上是如何在 Gradle 中排除特定的传递依赖而不影响其他工件?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn