在我的Grails项目中,我使用了库A.A的一个依赖项是B.在B jar中,有一个我想要从项目中排除的包(名为C)(因为它复制了JDK中的现有包并导致启动应用程序时出错)。但我不知道这样做的正确语法。我尝试了以下代码,但它不起作用
dependencies {
runtime ('A-library') {
excludes(<what-I-should-write-here>)
}
}
你可以帮我解决这个问题吗?非常感谢你
答案 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并删除这些类。