从 Gradle Build 中排除 module/transitive 依赖项

excluding module/transitive dependencies from Gradle Build

我目前正在尝试构建一个 gradle grails 3 项目,它在编译时使用 Spring-context-support 作为某些 Spring 依赖项下的传递依赖项在我的构建文件中声明。 我的应用程序确实依赖于组和 artifact/module 作为一个整体(即 Spring-context-support),但是,我需要明确地从 [=27] 中删除 of/exclude EhCache =]-上下文支持。 我从语法上知道如何摆脱整个 spring-context-support 依赖,但是我似乎无法弄清楚如何只删除缓存...

附上屏幕截图以帮助说明我的意思: 此行未注释时将删除整个 spring-context-support 依赖项:

在这里你可以看到 "cache" 包,其中包含我试图摆脱的 Ehcache 模块。我将如何调整排除声明以删除它?

文档中描述了排除依赖项:https://docs.gradle.org/current/userguide/managing_transitive_dependencies.html#sec:excluding_transitive_module_dependencies

祝你好运!

Gradle(或 Maven)只允许您排除工件级别的依赖项,即 class 路径上没有 jar。没有第一个 class 支持从依赖项中过滤掉一组包。

为此,最简单的方法是将您的应用程序重新打包到一个 fat jar 中,过滤掉您认为不必要的包。

但是你的问题的措辞方式让我怀疑是否存在混淆。 您将在 org.springframework.cache 中找到的不是 Ehcache 代码,而是 Spring 缓存抽象。 Ehcache 库是 net.sf.ehcacheorg.ehcache 组下的一个模块,您可以很好地排除这些。