Как исправить различные ошибки «Нет явных для Append.Value [...]» при обновлении до SBT 1.xx с версии 0.13.x? - PullRequest
0 голосов
/ 13 июня 2019

Я использую SBT 1.2.8 после перехода с 0.13.7;старые варианты использовали, например, <+= вместо +=, например, unmanagedClasspath in Compile += baseDirectory map { bd => Attributed.blank(bd / ".." / "config") },, но такие операторы были удалены.

Я видел несколько других связанных вопросов, но используемые типы кажутся достаточно разнымибыть бесполезным для меня:

  1. Не имеется никаких явных значений для Append.Value, найденного в Def.task для генерации файлов в SBT 0.13?
  2. sbt: неявное значение для Append.Value найдено [Seq [java.io.File], sbt.Def.Initialize [java.io.File]], )

три соответствующие последовательные строки в моем файле:

  unmanagedClasspath in Compile += baseDirectory map { bd => Attributed.blank(bd / ".." / "config") },
  unmanagedClasspath in Runtime ++= (unmanagedClasspath in Compile),
  unmanagedClasspath in Test ++= (unmanagedClasspath in Compile),

Это приводит к следующим ошибкам:

build.sbt:70: error: No implicit for Append.Value[sbt.Keys.Classpath, sbt.Def.Initialize[sbt.Task[sbt.internal.util.Attributed[java.io.File]]]] found,
  so sbt.Def.Initialize[sbt.Task[sbt.internal.util.Attributed[java.io.File]]] cannot be appended to sbt.Keys.Classpath
  unmanagedClasspath in Compile += baseDirectory map { bd => Attributed.blank(bd / ".." / "config") },
                                ^
build.sbt:71: error: No implicit for Append.Values[sbt.Keys.Classpath, sbt.TaskKey[sbt.Keys.Classpath]] found,
  so sbt.TaskKey[sbt.Keys.Classpath] cannot be appended to sbt.Keys.Classpath
  unmanagedClasspath in Runtime ++= (unmanagedClasspath in Compile),
                                ^
build.sbt:72: error: No implicit for Append.Values[sbt.Keys.Classpath, sbt.TaskKey[sbt.Keys.Classpath]] found,
  so sbt.TaskKey[sbt.Keys.Classpath] cannot be appended to sbt.Keys.Classpath
  unmanagedClasspath in Test ++= (unmanagedClasspath in Compile),

Если этой информации недостаточно, вот full build.sbt, и будем рады добавить соответствующие биты позже.

1 Ответ

0 голосов
/ 13 июня 2019

Немного посмотрев, я все-таки смог решить проблему со следующими изменениями. Ключ в каждом случае должен был определить, где получить доступ к .value, о котором идет речь.

  unmanagedClasspath in Compile += baseDirectory.value / ".." / "config",
  unmanagedClasspath in Runtime ++= (unmanagedClasspath in Compile).value,
  unmanagedClasspath in Test ++= (unmanagedClasspath in Compile).value,

В дополнение к вышеуказанным ссылкам, вам может помочь следующая документация: - https://www.scala -sbt.org / 1.0 / docs / Tasks.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...