猿问

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

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

附上一个屏幕截图来帮助说明我的意思:取消注释的这一行将删除整个 spring-context-support 依赖项:

在这里您会看到“缓存”包,其中包含我试图摆脱的 Ehcache 模块。我将如何调整排除声明以删除它?

http://img4.mukewang.com/619de88800014e4904400187.jpg

largeQ
浏览 428回答 2
2回答

芜湖不芜

Gradle(或 Maven)将只允许您在工件级别排除依赖项,即在类路径上没有 jar。对于从依赖项中过滤出一组包没有一流的支持。为此,最简单的方法是将您的应用程序重新打包到一个胖 jar 中,过滤掉您认为不必要的包。但是,您的问题的措辞方式让我想知道是否存在混淆。你会在里面找到org.springframework.cache的不是 Ehcache 代码,而是 Spring 缓存抽象。Ehcache 库是 groupnet.sf.ehcache或下的一个模块org.ehcache,您可以很好地排除这些。

长风秋雁

文档中描述了排除依赖项:https ://docs.gradle.org/current/userguide/managing_transitive_dependencies.html#sec: exclude_transitive_module_dependencies祝你好运!
随时随地看视频慕课网APP

相关分类

Java
我要回答