删除对Scala库

时间:2016-11-14 09:58:40

标签: scala sbt dependency-management

我项目中的一个库是在scala-continuations上添加依赖项。由于这仅用于我没有使用的库的功能,我想删除依赖项。这可以通过使用:

来完成
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功能或者可能是通配符操作用于排除,或者至少要确定所需的Scala版本后缀?

1 个答案:

答案 0 :(得分:1)

SBT包含预定义的密钥scalaBinaryVersion,可以像这样使用:

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