Sbt Plugin Добавить зависимость к проекту /build.sbt

У меня есть плагин sbt, который при включении добавляет плагин компилятора скаляка через опции скаляка. Все в порядке с этим.

Однако, если сам плагин компилятора scalac имеет зависимость, которую он должен использовать, я не могу заставить это работать. Я пробовал:

  • добавление зависимости к целевым проектам libraryDependencies
  • указав его как зависимость в самом плагине sbt.

Я думаю, что мне нужно сделать что-то вроде (это автоматический плагин):

override lazy val projectSettings = Seq(
  ...
  projectsPluginsDependencies ++= Seq(
    "com.typesafe" % "config" % "1.2.1" % Compile.name
  )
  ...
)

Если projectsPluginsDependencies был допустимым ключом. Это возможно?

(На самом деле, я даже не уверен, как добавить зависимость вручную в окончательный проект. Если плагину компилятора нужна зависимость X, как вы ее удовлетворяете? Я пытался добавить ее в project / build.sbt, но это не так Работа).

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

1 ответ

Смотрите раздел Поддержка плагинов компилятора.

autoCompilerPlugins := true

libraryDependencies +=
    compilerPlugin("org.scala-lang.plugins" % "continuations" % scalaVersion.value)

scalacOptions += "-P:continuations:enable"

Попробуйте и посмотрите, потянет ли это транзитивные зависимости.

Другие вопросы по тегам