2016-11-14 1 views
0

Eine der Bibliotheken in meinem Projekt fügt eine Abhängigkeit von scala-continuations hinzu. Da dies nur für Features der Bibliothek verwendet wird, die ich nicht verwende, möchte ich die Abhängigkeit entfernen. Dies kann durch Verwendung erfolgen:Entfernen Sie die Übergangsabhängigkeit für die Scala-Bibliothek

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

Dies funktioniert, aber ich nicht wie der _2.11 Teil. Ich konnte

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

derzeit keine andere Artefakte existieren mit diesen Organisationsnamen verwenden, aber es riecht mir, wie dies in der Zukunft ändern kann.

kann ich den Namen von scalaVersion unter Verwendung von String-Operationen zusammensetzen:

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

Gibt es vielleicht etwas kürzeren Weg, dies zu tun - einige SBT Funktion oder vielleicht Wildcard Operation für auszuschließen oder zumindest die Scala zu bestimmen Versionssuffix benötigt?

Antwort

1

SBT enthält eine vordefinierte Schlüssel scalaBinaryVersion, die wie folgt verwendet werden können:

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