新しいサービスをすばやく作成するためのフレームワークを提供する組織用のプラグインを作成しています。その一環として、すべてのプロジェクトに必要なプラグインがいくつかあります。このためのテンプレートを作成し、そこから新しいアプリケーションを作成することもできますが、プラグインを作成したいと思います。このプラグインは、機能の基本セットを提供するだけでなく、他のプラグインも多数含みます。
このように、エンドユーザーはスタックをアップグレードしたいときに 1 つのプラグインを更新するだけで済みます。柔軟性は低くなりますが、管理もはるかに簡単です。プラグインの作成を開始しました。最初にやりたいことは、Play プラグインをプロジェクトに結び付けることです。しかし、私はそれを機能させることができないようです。sbt-plugin
プラグインを使用して Playを追加しようとしましたが、プラグイン アプリケーション コード内の名前空間plugins.sbt
にアクセスできません。play.Play.autoLoader._
例えば:
プロジェクト/plugins.sbt
resolvers += "Typesafe repository" at "http://repo.typesafe.com/typesafe/releases/"
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.3.6")
src/main/scala/com/example/sbt/plugin/Plugin.scala
package com.example.sbt.plugin
import sbt._ // works just fine
import play.Play.autoImport._ // error, path doesn't exist
object Plugin {
def project(settings: Seq[Def.Setting[_] /* other params */) : Project = {
Project(settings).enablePlugins(play.PlayScala)
}
}