2014-06-17 10 views
7

Ho un classico build.sbt per il progetto Gioca 2.3 Scala con il libraryDependencies seguente impostazione:Come rimuovere la dipendenza dalla libreriaDipendenze che è stata aggiunta dal plugin?

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) 

Il plugin aggiunge PlayScalaspecs2 dipendenza che "inquina" classpath e rende bene l'importazione di più in IDE.

Come rimuovere una dipendenza da libraryDependencies?

+0

Sede [play framework/quadro/progetto/Dependencies.scala] (https://github.com/playframework/playframework/blob/ 17d037e06ebf135b06c5309e674a21b59781f140/quadro/progetto/Dependencies.scala). Playframework è molto strettamente accoppiato con specs2. –

+0

Sì. Ma solo per test. Ogni utilizzo in dipendenza lo sta mappando nell'ambito del test. Quindi, se non utilizzo l'integrazione di Specs2 né di play-specs2 ma solo scalatest con l'integrazione play-scalatest, credo che dovrebbe funzionare. Penso che la dipendenza da Specs2 ci sia ancora perché l'integrazione scalata è piuttosto recente (dal 2.2.x) ma fornisce tutto il necessario. –

+1

Vedere l'argomento Escludi transitivi di dipendenza su: http://www.scala-sbt.org/0.13/docs/Library-Management.html –

risposta

9

ho risolto un problema simile con l'aggiunta del seguente alla mia Build.scala:

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

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

Grazie, questo ha funzionato per me, ma non l'altro risposta. –

6

Sono riuscito. Grazie a Venkat, conoscevo l'esclusione, ma siccome non ho dichiarato la dipendenza da solo, non sapevo dove usarlo.

'stato molto semplice: ridichiarare da solo la dipendenza aggiunto dal plugin:

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") 
) 

Forse non molto elegante, ma funziona.

+3

Sono curioso perché questo è downvoted – Daenyth

Problemi correlati