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

标签 java gradle grails ehcache transitive-dependency

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

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

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

最佳答案

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

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

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

关于java - 从 Gradle Build 中排除模块/传递依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52863972/

相关文章:

java - onCreate() 被无限调用

java - 解决java中的类名冲突

java - 组件如何在 JFrame 中并发工作?

java - Grails maven 插件需要 Groovy 2.4.2

java - 在 hadoop 安装期间尝试执行命令 "hdfs: command not found"时出现 "hdfs namenode -format"

android - 将 android 项目迁移到 Gradle?

java - 使用 Gradle 运行 jUnit 测试时将 JUL 日志语句传递给 Log4j2

android - 如何在Gradle中添加系统权限

apache-flex - 在 groovy/grails 中使用元编程拦截服务方法调用

grails - 如何在 Grails Web 应用程序中使用 shiro native session ?