2011-05-24 152 views
3

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

dependencies { 
    runtime ('A-library') { 
      excludes(<what-I-should-write-here>) 
    } 
} 

请问你能帮我吗?非常感谢你

+0

使用(我不提供它作为一个答案,因为我从来没有尝试过自己):HTTP://grails.1312388 .n4.nabble.com/How-to-exclude-mail-jar-and-activation-jar-from-Mail-plugin-td2336346.html 也许这不会帮助你,除非你正在构建和运行a。战争。 – 2011-05-24 03:19:10

回答

4

这不是它的工作原理。依赖管理工作在jar文件(和插件)上,而不是类或包。如果你需要排除一个类或包,你需要指定一个不包含它们的不同版本,或者如果需要的话,可以在删除这些类的情况下自己重建jar。

5

您只能完全包含/排除B,您不能包含/排除某些B的包。要实现您的目标,您需要找到(或创建)删除了重复包的B的修改版本。然后改变你的BuildConfig.groovy到:在BuildConfig一个“删除”的方法在这里提出的

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