我有一個多項目Gradle構建。我有Sub-Project-A
取決於Sub-Project-B
。 Sub-Project-B
編譯時依賴於SLF4J
。我做不是想要Sub-Project-A
能夠對任何SLF4J
庫進行編譯,但在運行時我確實希望Sub-Project-B
代碼能夠運行。使用Gradle阻止第三方庫在編譯類路徑
我想我可以做的就是添加編譯時依賴於子項目-B,然後添加:
configurations {
compile.exclude group: 'org.slf4j'
}
到子項目-A。這確實會阻止任何代碼針對slf4j API進行編譯,但是它也會阻止slf4j庫位於Sub-Project-A運行時,因此只要訪問來自Sub-Project-B
的代碼,就會遇到ClassNotFoundException。
既然這樣很難得到工作,我想我必須做錯了什麼,但是這不像一個不合理的設置。我只希望我的構建中的一個子項目能夠在編譯時訪問第三方庫。
是的,這確實似乎是不太重複的 – erdi
這工作得很好,除了我現在發現,我已經配置了一堆其他依賴關係,最終也拉到了slf4j,所以這個解決方案並沒有結束工作。標記爲正確的解決方案,因爲在我的有限情況下,我概述了我認爲這絕對是解決這個問題的最佳方法。謝謝! – jjathman