2011-05-24 48 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' 
} 
相關問題