为了账号安全,请及时绑定邮箱和手机立即绑定

从 Gradle Build 中排除模块/传递依赖项

从 Gradle Build 中排除模块/传递依赖项

largeQ 2021-11-24 15:23:11
我目前正在尝试构建一个 gradle grails 3 项目,它在我的构建文件中声明的编译时使用 Spring-context-support 作为某些 Spring 依赖项下的传递依赖项。我的应用程序确实依赖于组和工件/模块作为一个整体(即 Spring-context-support),但是,我需要从 spring-context-support 中明确删除/排除 EhCache。我在语法上知道如何摆脱整个 spring-context-support 依赖,但是我似乎无法弄清楚如何只删除缓存......附上一个屏幕截图来帮助说明我的意思:取消注释的这一行将删除整个 spring-context-support 依赖项:在这里您会看到“缓存”包,其中包含我试图摆脱的 Ehcache 模块。我将如何调整排除声明以删除它?
查看完整描述

2 回答

?
芜湖不芜

TA贡献1796条经验 获得超7个赞

Gradle(或 Maven)将只允许您在工件级别排除依赖项,即在类路径上没有 jar。对于从依赖项中过滤出一组包没有一流的支持。

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

但是,您的问题的措辞方式让我想知道是否存在混淆。你会在里面找到org.springframework.cache的不是 Ehcache 代码,而是 Spring 缓存抽象。Ehcache 库是 groupnet.sf.ehcache或下的一个模块org.ehcache,您可以很好地排除这些。


查看完整回答
反对 回复 2021-11-24
?
长风秋雁

TA贡献1757条经验 获得超7个赞

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

祝你好运!


查看完整回答
反对 回复 2021-11-24
  • 2 回答
  • 0 关注
  • 427 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信