我有使用庫的 gradle scala 專案(可以說"A")(可以說"X")。我已經在Project-A的 build.gradle 中使用了這個Library-“X” ,如下所示,我正在使用Library-X類來執行一些操作。
專案-“A”的build.gradle
implementation "com.x.y.z.stone:central-dl-spark-common-integration-logging:0.4.0-SNAPSHOT"
現在專案-“A”本身就是一個在專案-“B”中使用的庫,這個專案-B是maven構建的。現在,當我呼叫充當庫的Project-A函式時,反過來使用Library-X函式。但是Project-B抱怨找不到類錯誤,如下所示。這是Library-X類
java.lang.NoClassDefFoundError: com/x/y/z/integrationlogging/IntegrationLogging$
我的問題是我們是否還需要在Project-B的 pom.xml 中宣告Library-X?
uj5u.com熱心網友回復:
否:如果 Project-B 匯入 Project-A,并且 Project-A 對 Library-X 有內部依賴,您通常不需要做任何事情,它會自動決議。
一些例外情況可能包括存在于私有關系中的沖突和庫。對于前者,需要解決 pom.xml 中的沖突。對于后者,您需要確保可以從您編譯的任何地方訪問您的存盤庫。
uj5u.com熱心網友回復:
不。
“默認情況下”依賴關系是可傳遞的,除非指定相反的情況(使用排除項或范圍(例如,測驗范圍的依賴項不會傳遞傳播))。
編輯:您可以用來mvn dependency:tree更好地了解您的依賴關系。
一種可能性是庫 X 被拉入不同的不兼容版本。
uj5u.com熱心網友回復:
謝謝你看我的帖子。通過在 Project-B pom.xml 中的標簽下添加 Library-X,作業正常。如下所示
<artifactSet>
<include>x.y.stone:central-dl-spark-common-integration-logging</include>
</artifactSet>
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/511409.html
標籤:爪哇斯卡拉行家毕业典礼
上一篇:JUnit測驗似乎無法使用來自Maven的--add-modules=jdk.incubator.vector運行
