2016-08-24 2 views
2

Ich versuche, diese sbt-Sündenbock zu verwenden, durch Zugabe von:Warum versucht sbt-Sündenbock Version 1.0.0 zu lösen? plugins.sbt

addSbtPlugin("com.sksamuel.scapegoat" %% "sbt-scapegoat" % "1.0.4") 

dann durch build.scala Datei dies ich tue:

import com.sksamuel.scapegoat.sbt.ScapegoatSbtPlugin.autoImport._ 
scapegoatVersion   := "1.1.0" 

Dies ist, was gezeigt hat auf der sbt-Sündenbock-Website. Ich feuere sbt an und lasse es sbt-Sündenbock 1.0.4 auflösen, was es tut. So weit, ist es gut. Wenn ich dann Sündenbock bekomme, bekomme ich:

[info] Resolving com.sksamuel.scapegoat#scalac-scapegoat-plugin_2.10;1.0.0 ... 
[warn] Host repo1.maven.org not found. url=https://repo1.maven.org/maven2/com/sksamuel/scapegoat/scalac-scapegoat-plugin_2.10/1.0.0/scalac-scapegoat-plugin_2.10-1.0.0.pom 
[info] You probably access the destination server through a proxy server that is not well configured. 
[warn] module not found: com.sksamuel.scapegoat#scalac-scapegoat-plugin_2.10;1.0.0 
[warn] ==== local: tried 
[warn] /Users/wmy965/.ivy2/local/com.sksamuel.scapegoat/scalac-scapegoat-plugin_2.10/1.0.0/ivys/ivy.xml 
[warn] ==== public: tried 
[warn] https://repo1.maven.org/maven2/com/sksamuel/scapegoat/scalac-scapegoat-plugin_2.10/1.0.0/scalac-scapegoat-plugin_2.10-1.0.0.pom 
[info] Resolving org.fusesource.jansi#jansi;1.4 ... 
[warn] :::::::::::::::::::::::::::::::::::::::::::::: 
[warn] ::   UNRESOLVED DEPENDENCIES   :: 
[warn] :::::::::::::::::::::::::::::::::::::::::::::: 
[warn] :: com.sksamuel.scapegoat#scalac-scapegoat-plugin_2.10;1.0.0: not found 
[warn] :::::::::::::::::::::::::::::::::::::::::::::: 

Woher kommt die 1.0.0 Abhängigkeit? Mein Projekt ist scala 2.11.7 und ich benutze sbt 0.13.11. Ich sehe keinen Hinweis auf einen anderen Resolver auf der sbt-Sündenbock-Website.

In meiner Ausgabe zeigt meine Konsole eine Menge gefundener Analysefehler, aber das generierte HTML-Dokument ist im Grunde leer - zeigt nicht die Fehler an, die auf der Konsole angezeigt werden.

Wie kann ich das beheben?

+1

Es ist auch auf der Suche nach Sündenbock für 2.10, die es nicht gibt. Einige Fragen: 1. Haben Sie ein Multiprojekt gebaut? 2. Sind die Pfade zu den Dateien "project/plugins.sbt" und "project/build.scala"? 3. Was bekommst du vom Befehl 'show sacegoatVersion'? –

+0

1. Ja, es ist mutliproject. 2. Die Projektpfade entsprechen Ihren Angaben. 3. Ausgabe hier ein: (für die Formatierung) [info] dotdash_messages/*: scapegoatVersion [info] \t 1.2.1 [info] dotdash/*: scapegoatVersion [info] \t 1.2.1 [info] root/* : scapegoatVersion [info] \t 1.0.0 – Greg

+0

Ich sollte hinzufügen, dass, wenn ich versuchte, scapegoatVersion hinzuzufügen: = "1.2.1" zu root bekam es eine andere fehlgeschlagene Abhängigkeit, weil root mit scala 2.10 (sbt) kompiliert und die nicht Root-Module in 2.11. Ich bin mir nicht sicher, was ich dagegen tun soll. – Greg

Antwort

0

Um scapegoatVersion für Teilprojekte festzulegen, müssen Sie entweder die allgemeinen Einstellungen wie beschrieben here eingeben oder scapegoatVersion in ThisBuild := "1.1.0" verwenden. Um den Fehler zu vermeiden, denke ich scalaVersion im Stammprojekteinstellung funktionieren würde:

lazy val root = (project in file(".")). 
    aggregate(dotdash, dotdash_messages). 
    settings(
    scalaVersion := "2.11.7" 
) 

oder wieder scalaVersion in ThisBuild verwenden.

Ich schlage auch vor, ein Problem bei https://github.com/sksamuel/sbt-scapegoat zu erhöhen.

0

Zusätzlich zu der obigen Antwort von Alexey, nur um WHERE zu beantworten, möchten Sie vielleicht überprüfen ScapegoatPlugin.scala. Dies ist ein sbt Auto Plugin und die Methode buildSettings hat die zu verwendende scapegoatVersion überschrieben.

override def buildSettings = super.buildSettings ++ Seq(
      scapegoatVersion := "1.0.0", 
      scapegoatRunAlways := true, 
      scapegoatConsoleOutput := true, 
      scapegoatVerbose := true,... 

Wir können die Version angeben, verwenden wir wählen, scapegoatVersion in ThisBuild.

Verwandte Themen