在 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中文网其他相关文章!