如何在Grails项目中排除jar依赖项的特定包?

时间:2011-05-24 02:55:24

标签: grails dependencies

在我的Grails项目中,我使用了库A.A的一个依赖项是B.在B jar中,有一个我想要从项目中排除的包(名为C)(因为它复制了JDK中的现有包并导致启动应用程序时出错)。但我不知道这样做的正确语法。我尝试了以下代码,但它不起作用

dependencies {  
     runtime ('A-library') {  
            excludes(<what-I-should-write-here>)  
     }
}
你可以帮我解决这个问题吗?非常感谢你

2 个答案:

答案 0 :(得分:5)

您只能完全包含/排除B,不能包含/排除B的某些包。为了实现您的目标,您需要找到(或创建)已删除重复包的B的修改版本。然后将BuildConfig.groovy更改为:

dependencies {  
     runtime ('A-library') {  
            excludes('B-library')  
     }
     runtime 'B-library-with-duplicate-packages-excluded'
}

答案 1 :(得分:4)

这不是它的工作原理。依赖关系管理适用于jar文件(和插件),而不是类或包。如果您需要排除某个类或包,则需要指定不包含它们的其他版本,或者如果需要,请自行重建jar并删除这些类。