2014-06-17 3 views
7

Ich habe ein sehr klassisches build.sbt für Play 2.3 Scala-Projekt mit der folgenden libraryDependencies Einstellung:Wie entfernt man die Abhängigkeit von libraryDependencies, die vom Plugin hinzugefügt wurde?

libraryDependencies ++= Seq(
    "org.scalatestplus" % "play_2.10" % "1.1.0" % "test" 
    "org.mockito" % "mockito-core" % "1.9.5" % "test" 
) 

lazy val portal = (project in file(".")).enablePlugins(PlayScala) 

Die PlayScala Plugin fügt specs2 Abhängigkeit, dass "verpestet" Classpath und macht in IDE guten Import härter.

Wie kann ich eine Abhängigkeit von libraryDependencies entfernen?

+0

See [playframework/Rahmen/Projekt/Dependencies.scala] (https://github.com/playframework/playframework/blob/ 17d037e06ebf135b06c5309e674a21b59781f140/Framework/Projekt/Abhängigkeiten.scala). Playframework ist eng mit Specs2 gekoppelt. –

+0

Ja. Aber nur für den Test. Jede Verwendung in Abhängigkeit wird im Testbereich abgebildet. Also, wenn ich weder Specs2 noch Play-Specs2-Integration verwende, sondern nur skaliert mit der play-scalestest-Integration, glaube ich, dass es funktionieren sollte. Ich denke, dass die Specs2-Abhängigkeit immer noch da ist, weil die skalierte Integration ziemlich neu ist (seit 2.2.x), aber sie bietet alles, was benötigt wird. –

+1

Siehe Thema Transitive Abhängigkeiten ausschließen unter: http://www.scala-sbt.org/0.13/docs/Library-Management.html –

Antwort

9

löste ich ein ähnliches Problem wie folgt meiner Build.scala durch Zugabe:

def excludeSpecs2(module: ModuleID): ModuleID = 
    module.excludeAll(ExclusionRule(organization = "org.specs2")) 

val main = Project(appName, file(".")) 
    .enablePlugins(play.PlayScala) 
    .settings(libraryDependencies ~= (_.map(excludeSpecs2))) 
+1

Danke, das funktionierte für mich, aber nicht die andere Antworten. –

6

Ich war erfolgreich. Danke Venkat, ich kannte den Ausschluss, aber da ich die Abhängigkeit nicht selbst erklärt habe, wusste ich nicht, wo ich sie verwenden sollte.

Es war sehr einfach: neu deklarierte allein die Abhängigkeit vom Plugin hinzugefügt:

libraryDependencies ++= Seq(
    "org.scalatestplus" % "play_2.10" % "1.1.0" % "test", 
    "org.mockito" % "mockito-core" % "1.9.5" % "test", 
    "com.typesafe.play" %% "play-test" % play.core.PlayVersion.current % "test" exclude("org.specs2", "specs2-core_2.10") exclude("org.specs2", "specs2-junit_2.10") exclude("org.specs2", "specs2-mock_2.10") exclude("org.specs2", "specs2-matcher-extra_2.10") exclude("org.specs2", "") exclude("com.novocode", "junit-interface") exclude("com.google.guava", "guava") exclude("com.google.code.findbugs", "jsr305") 
) 

Vielleicht nicht sehr elegant, aber es funktioniert.

+3

Ich bin gespannt, warum dies ist – Daenyth

Verwandte Themen