2016-11-14 22 views
0

我的項目中的一個庫文件添加了對scala-continuations的依賴關係。由於這隻用於我不使用的庫的功能,我想要刪除依賴項。這可以通過使用來完成:刪除對Scala庫的過渡依賴關係

libraryDependencies += "com.jsuereth" %% "scala-arm" % "1.4" exclude(
    "org.scala-lang.plugins", "scala-continuations-library_2.11" 
) 

這工作,但我不喜歡_2.11部分。我可以用

excludeAll(ExclusionRule(organization="org.scala-lang.plugins")) 

目前正與該組織名稱不存在其他文物,但它聞起來給我,因爲這可能在未來改變。

我可以使用字符串操作從scalaVersion組成名稱:

libraryDependencies += "com.jsuereth" %% "scala-arm" % "1.4" exclude(
    "org.scala-lang.plugins", "scala-continuations-library_" + scalaVersion.value.split('.').dropRight(1).mkString(".") 
) 

有可能還有一些更短的方式做到這一點 - 有些SBT功能或者是通配符操作中排除,或者至少確定斯卡拉版本後綴需要?

回答

1

SBT包含一個預定義的鍵scalaBinaryVersion,其可以像這樣使用:

libraryDependencies += "com.jsuereth" %% "scala-arm" % "1.4" exclude(
    "org.scala-lang.plugins", "scala-continuations-library_" + scalaBinaryVersion.value 
)