SBT 插件 %%% 在哪里定义?

SBT Plugin Where is %%% defined?

我有一个 SBT 插件,它会在编译前自动生成一些 Scala.js 代码。此代码取决于一个库,我希望在启用插件时自动包含该库。

这编译并运行,但没有得到库的 Scala.js 版本:

import sbt._
import Keys.libraryDependencies

object MyPlugin extends AutoPlugin {
  object autoImport {
    lazy val baseSettings: Seq[Def.Setting[_]] = Seq(
      libraryDependencies += "my.lib" %% "library" % "0.1.0"
    )
  }

  import autoImport._

  override lazy val projectSettings = baseSettings
}

当我尝试使用 "my.lib" %%% "library" % "0.1.0" 时,我得到:

value %%% is not a member of String

我觉得我可能缺少导入,但我找不到它应该定义的位置。

%%%the sbt-platformdeps plugin.

定义

除非您的 sbt 插件已经依赖于 sbt-scalajs,否则您需要在插件项目的 settings:

中添加依赖项
addSbtPlugin("org.portable-scala" % "sbt-platform-deps" % "1.0.0")

以下导入将其纳入范围:

import org.portablescala.sbtplatformdeps.PlatformDepsPlugin.autoImport._

addSbtPlugin("com.lightbend.lagom" % "lagom-sbt-plugin" % "X.Y.Z") // 将 'X.Y.Z' 替换为您喜欢的版本(例如 '1.2.0- RC2').

你可以参考这个 https://www.lagomframework.com/documentation/1.6.x/java/LagomBuild.html