新しいサービスをすばやく作成するためのフレームワークを提供する組織用のプラグインを作成しています。その一環として、すべてのプロジェクトに必要なプラグインがいくつかあります。このためのテンプレートを作成し、そこから新しいアプリケーションを作成することもできますが、プラグインを作成したいと思います。このプラグインは、機能の基本セットを提供するだけでなく、他のプラグインも多数含みます。
このように、エンドユーザーはスタックをアップグレードしたいときに 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)
  }
}