少し前からこんなsbtプラグインを作っていたのですが、使えそうな感じになってきたので紹介記事を書きたいと思います。
このプラグインはGitBucketプラグインのsbtプロジェクトに以下の機能を提供します。
- GitBucketのコアライブラリとサーブレットAPIを自動的に依存関係に追加します
- sbt-assemblyプラグインが自動的にで有効になります
- sbt-twirlプラグインが自動的に有効になります
sbt install
タスクでローカルのGitBucketにプラグインをインストールできます
使用するにはproject/plugin.sbt
に以下の記述を追加します。
addSbtPlugin("io.github.gitbucket" % "sbt-gitbucket-plugin" % "1.2.0")
build.sbt
にはGitBucketのバージョンのみ指定すればOKです。
gitbucketVersion := "4.19.0"
GitBucketはプラグインのオートリロード機能を持っているので、ローカルでGitBucketを立ち上げた状態でプラグインのソースコードを編集したらsbt install
を実行すればプラグインの動作確認を行うことができます。GitBucketを再起動する必要もありませんし、セッションも切れないので結構快適に開発ができると思います。
sbt install
は<HOME>/.gitbucket/plugins
ディレクトリにプラグインのjarファイルをコピーしますが、環境変数GITBUCKET_HOME
やシステムプロパティgitbucket.home
が設定されている場合はそちらを優先します。また、完成したプラグインをリリースする場合はsbt assembly
で生成されたtarget/scala-2.12/<プロジェクト名>-assembly-<バージョン番号>.jar
を配布すればOKです。
将来的にはプラグインのリモートリポジトリからのインストールをできるようにしたいと考えているのですが、その際に必要となるであろうメタデータファイルの生成などもこのプラグインでできるようにしたいと考えています。いつになるかわかりませんが…。
以下のGitBucketプラグイン用のテンプレートプロジェクトもこのsbtプラグインを使うように更新されていますので、このテンプレートを使用することで簡単にGitBucketプラグインの開発を始めることができます。
もし新しいプラグインを作成した場合は是非GitBucket Community Pluginsに掲載させていただければと思いますのでご連絡ください!