2016-11-14 3 views
0

Одна из libaries в моем проекте добавляет зависимость от 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 или, возможно, подстановочные операция для исключения или, по крайней мере, для определения Scala Суффикс версии нужен?

ответ

1

SBT содержит предопределенный ключ scalaBinaryVersion, который может быть использован, как это:

libraryDependencies += "com.jsuereth" %% "scala-arm" % "1.4" exclude(
    "org.scala-lang.plugins", "scala-continuations-library_" + scalaBinaryVersion.value 
) 
Смежные вопросы