2017-02-28 20 views
5

修復SBT驅逐警告消息是否是一個好主意?SBT:是否明智地解決圖書館依賴性的驅逐警告

通過重寫最新版本的驅逐庫。這是否會迫使SBT堅持終生使用的版本? SBT仍然會通知我們未來會有更新的版本嗎?驅逐警告

實施例(SBT 0.13.13)

[warn] There may be incompatibilities among your library dependencies. 
[warn] Here are some of the libraries that were evicted: 
[warn] * com.chuusai:shapeless_2.11:1.2.4 -> 2.3.2 
[warn] * org.postgresql:postgresql:9.4-1201-jdbc41 -> 9.4.1208.jre7 
[warn] * jline:jline:0.9.94 -> 2.12.1 
[warn] Run 'evicted' to see detailed eviction warnings 

通過在build.sbt的末尾添加該刪除警告。繼SBT文檔Eviction warning

dependencyOverrides ++= Set(
    "org.postgresql" % "postgresql" % "9.4.1208.jre7", 
    "com.chuusai" %% "shapeless" % "2.3.2", 
    "jline" % "jline" % "2.12.1" 
) 

回答

10

的說明。如果這些警告是您在代碼中直接使用的依賴,你一定要升級後的版本添加到您的libraryDependencies

對於被驅逐的傳遞依賴關係(這些依賴關係只能由您自己的依賴關係直接使用),最好只保留警告。這爲您提供了關於您的依賴關係中可能的不兼容問題的文檔,並且可以幫助您調試由於此類不兼容問題而導致的運行時問題。

請記住,設置dependencyOverrides只是隱藏警告,它不能保證您的庫和您設置的版本之間的兼容性。