【问题标题】:excluding module/transitive dependencies from Gradle Build从 Gradle Build 中排除模块/传递依赖项
【发布时间】:2018-10-17 21:36:18
【问题描述】:

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

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

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

【问题讨论】:

    标签: java gradle grails ehcache transitive-dependency


    【解决方案1】:

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

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

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

    【讨论】:

    • 非常感谢。这是我一直在寻找的答案。我并没有试图完全排除该模块。我试图摆脱包裹。顺便说一句,我能够完全排除它是没有意义的。但是,我不确定您对过滤掉包的意思。我会研究什么是“胖”罐子,然后从那里尝试。谢谢
    【解决方案2】:

    【讨论】:

    • 我想你可能错过了我的要求。我查看了文档或传递依赖项管理,但是我想知道是否有一种方法我错过了处理在依赖项本身中排除小型独立模块的方法,或者您是否只能删除整个依赖项。谢谢
    猜你喜欢
    • 2015-05-15
    • 2017-06-15
    • 1970-01-01
    • 2016-11-11
    • 2012-12-05
    • 2023-04-02
    • 2019-02-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多