2016-08-24 3 views
2

Я пытаюсь использовать SBT-козла отпущения, добавив в plugins.sbt:Почему sbt-scapegoat пытается решить версию 1.0.0?

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

Затем в файле с помощью build.scala я это делаю:

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

Это то, что показано на сайте sbt-scapegoat github. Я запускаю sbt и разрешаю разрешить sbt-scapegoat 1.0.4, что и делает. Все идет нормально. Затем, если я запустил козла отпущения, я получаю:

[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] :::::::::::::::::::::::::::::::::::::::::::::: 

Где 1,0.07 зависимость от? Мой проект - scala 2.11.7, и я использую sbt 0.13.11. Я не вижу упоминания о другом резоллере на веб-сайте sbt-scapegoat.

В моем выпуске моя консоль показывает кучу найденных ошибок анализа, но сгенерированный HTML-документ в основном пуст - не показывает ошибок, отображаемых на консоли.

Как это исправить?

+1

Он также ищет козла отпущения для 2.10, которого нет. Некоторые вопросы: 1. У вас есть многопроектная сборка? 2. Являются ли пути к файлам вы упоминаете 'project/plugins.sbt' и' project/build.scala'? 3. Что вы получаете от команды show show scoegoatVersion? –

+0

1. Да, это mutliproject. 2. Пути проекта, как вы указали. 3. Выход здесь: (извините за форматирование) [информация] dotdash_messages/*: scapegoatVersion [Информация] \t 1.2.1 [информация] dotdash/*: scapegoatVersion [Информация] \t 1.2.1 [информация] корень/* : scapegoatVersion [info] \t 1.0.0 – Greg

+0

Я должен добавить, что когда я пытался добавить scapegoatVersion: = "1.2.1", то для root он получил другую неудачную зависимость, поскольку root компилируется с помощью scala 2.10 (sbt) корневых модулей в 2.11. Не уверен, что с этим делать. – Greg

ответ

0

Для установки scapegoatVersion для подпроектов вам необходимо либо установить его общие настройки, как описано here, либо использовать scapegoatVersion in ThisBuild := "1.1.0". Чтобы избежать ошибки, я думаю, что установка scalaVersion в корневом проекте будет работать:

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

или повторно использовать scalaVersion in ThisBuild.

Я также предлагаю поднимать вопрос на https://github.com/sksamuel/sbt-scapegoat.

0

В дополнение к вышеуказанному ответу от Алексея, просто чтобы ответить ГДЕ, вы можете проверить ScapegoatPlugin.scala. Это sbt Auto Plugin и метод buildSettings переопределил используемое scapegoatVersion.

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

Мы можем указать версию мы решили использовать, scapegoatVersion in ThisBuild.

Смежные вопросы