1
爲了測試起見,我創建了一個空的項目只有一個文件build.sbt
只包含一個行:SBT失敗,計算器,而行家工作正常
libraryDependencies += "org.openprovenance.prov" % "prov-interop" % "0.7.2"
如果我運行sbt update
失敗堆棧溢出。最後幾行看起來像這樣(你能想象的重複嵌套試圖下載依賴):
at org.apache.ivy.core.resolve.ResolveEngine.fetchDependencies(ResolveEngine.java:731)
at org.apache.ivy.core.resolve.ResolveEngine.fetchDependencies(ResolveEngine.java:748)
at org.apache.ivy.core.resolve.ResolveEngine.doFetchDependencies(ResolveEngine.java:799)
at org.apache.ivy.core.resolve.ResolveEngine.fetchDependencies(ResolveEngine.java:731)
at org.apache.ivy.core.resolve.ResolveEngine.fetchDependencies(ResolveEngine.java:748)
at org.apache.ivy.core.resolve.ResolveEngine.doFetchDependencies(ResolveEngine.java:799)
[error] (*:update) java.lang.StackOverflowError
[error] Total time: 1 s, completed Dec 21, 2015 11:50:37 PM
我有一個Maven項目相同的依賴,並在那裏的依賴關係沒有任何問題下載。我該如何解決這個問題?
我看到一個不同的jar的異常(我自己構建並部署到私有存儲庫)。你能解釋一下這裏的問題,以及爲什麼增加'antlr-runtime'解決它?謝謝 –
@ tzach-zohar,問題的根源在於'prov-interop'引起的遞歸依賴。顯然,在'maven'中使用'prov-interop'很好,但是在'sbt'中使用時,會導致與'antlr-runtime'不同版本的遞歸依賴關係。所以最後根據依賴樹評估,最好的解決方案是'exclude(「org.antlr」,「stringtemplate」)'。 – Shayanlinux
謝謝,這很有幫助! –