1. コミュニティプラグイン

コミュニティプラグイン 

sbt組織 

sbt組織sbt組織は、任意のsbtプラグインで使用できます。コミュニティ組織にプラグインを提供する開発者は、引き続き自分のリポジトリとそのアクセスを制御します。sbt組織の目標は、sbtソフトウェアを1つのセントラルロケーションに整理することです。

プロジェクトにsbt組織を使用するもう一つの利点は、gh-pagesを使用してhttps://sbt.dokyumento.jpドメイン下にウェブサイトをホストできることです。

sbt autoplugin giter8テンプレートは、開始に最適な場所です。これにより、新しいsbtプラグインプロジェクトが適切に設定されます。生成された`README`には、新しいコミュニティプラグインを公開する手順の概要が含まれています。

コミュニティIvyリポジトリ 

Lightbendは、sbtプロジェクトで使用できる無料で利用可能なIvyリポジトリを提供しています。このIvyリポジトリは、無料で利用可能なBintrayサービスからミラーリングされています。プラグインを送信したい場合は、次の手順に従ってください。プラグインのためのBintray

sbt 0.13からのプラグインのクロスビルド 

クロスビルドプラグインを参照してください。

sbt 1.0(RC-xを含む)で使用可能なプラグイン 

[編集]このページにプルリクエストを送信して、プラグインをリストに追加してください。

コードフォーマッタプラグイン 

  • sbt-scalafmt:Scalafmtを使用したコードフォーマット。
  • sbt-scalariform:Scalariformを使用したコードフォーマット。
  • neo-sbt-scalafmt:Scalafmtを使用したコードフォーマット。
  • sbt-java-formatter:Javaソースのコードフォーマット。
  • sbt-source-format:Javaとclang(c/c++/objc)ソースのコードフォーマット。
  • safety-plugin:会社全体でスタイルルールを使用することを強制します。

ドキュメントプラグイン 

  • tut:ドキュメントとチュートリアルジェネレーター。
  • Laika:MarkdownまたはreStructuredTextをテンプレート付きのHTMLまたはPDFに変換します。
  • sbt-site:サイトジェネレーター。
  • sbt-microsites:Jekyllを使用してマイクロサイトを生成および公開します。
  • sbt-unidoc:サブプロジェクト全体で統一されたAPIドキュメントを作成します。
  • sbt-ghpages:生成されたサイトをGitHub Pagesに公開します。
  • sbt-class-diagram:Scalaソースコードからクラス図を生成します。
  • sbt-api-mappings:一般的なScalaライブラリ用のScaladoc`apiMappings`を生成します。
  • literator:ソースからリテラシー・スタイルのmarkdownドキュメントを生成します。
  • sbt-example:Scaladocの例からScalaTestテストスイートを生成します。
  • sbt-delombok:Lombokアノテーションを含むJavaソースファイルをdelombokして、JavadocにLombokによって生成されたクラスとメソッドを含めます。
  • sbt-alldocs:プロジェクトと依存関係のすべてのドキュメントを単一のフォルダーに収集します。
  • sbt-apidocapidocjsをsbtに移植したもので、REST APIを文書化します。
  • sbt-github-pages (docs): 最小限の労力でGitHub Pagesにウェブサイトを公開します - GitHub Actionsと連携して動作します。
  • sbt-docusaur (docs): Docusaurusを使用してウェブサイトを構築し、最小限の労力でGitHub Pagesに公開します - GitHub Actionsと連携して動作します。
  • sbt-hl-compiler:ドキュメントからコードスニペットをコンパイルします(整合性を維持するため)。
  • sbt-scaladoc-compiler:Scaladocコメントに含まれるコードスニペットをコンパイルします。

ワンJARプラグイン 

リリースプラグイン 

  • sbt-native-packager (docs): プロジェクトのネイティブパッケージ(RPM、.debなど)をビルドします。
  • sbt-pack:プロジェクトの実行可能な配布物を作成します。
  • sbt-bintray:アーティファクトをBintrayに公開します。
  • sbt-sonatype:アーティファクトをMaven Centralに公開します。
  • sbt-release:カスタマイズ可能なリリースプロセスを作成します。
  • sbt-pgp:PGP/GPGを使用してアーティファクトに署名し、署名キーを管理します。
  • sbt-docker:Dockerイメージの作成とプッシュ。
  • sbt-aether-deploy:Eclipse Aetherを使用してアーティファクトを公開します。
  • sbt-rig:一般的なリリース手順に関する意見。
  • sbt-s3:Amazon S3上のオブジェクトを管理します。
  • sbt-osgi:OSGiバンドルの作成。
  • sbt-github-release:Githubリリースの公開。
  • sbt-hadoopHadoop分散ファイルシステム(HDFS)にアーティファクトを公開します。
  • sbt-publish-more:複数のリポジトリにアーティファクトを公開します。
  • sbt-deploy:展開可能なfat JARの作成。
  • sbt-release-fossilsbt-releaseを拡張してFossilリポジトリをサポートします。
  • sbt-autoversion:前回のリリース以降のコミットメッセージのパターンに基づいて、次のバージョンアップを自動的に設定します。
  • sbt-gcs:Google Cloud Storage上のオブジェクトを管理します。
  • sbt-sourcebundler:すべてのソースコードを1つのScalaファイルにマージします。
  • sbt-kubeyml:プロジェクト設定に基づいて型安全なKubernetes Deploymentを作成します。
  • sbt-k8sscala-k8sライブラリを使用して、任意のマニフェストを作成するか、提供されているクックブックを使用します。
  • sbt-release-notes:リリースノートファイルを自動的に更新するための、sbt-releaseのリリースステップを提供します。

デプロイメント統合プラグイン 

  • sbt-heroku:アプリケーションをHerokuに直接デプロイします。
  • sbt-docker-compose:docker composeを使用してDockerイメージを起動します。
  • sbt-appengine:ウェブアプリをGoogle App Engineにデプロイします。
  • sbt-marathonMarathonフレームワークを使用して、Apache Mesosにアプリケーションをデプロイします。
  • sbt-riotctl:アプリケーションをsystemdサービスとしてRaspberry Piに直接デプロイし、依存関係(例:wiringpi)を満たします。
  • sbt-kind:構築済みのDockerイメージをkindクラスタにロードします。

ユーティリティおよびシステムプラグイン 

  • sbt-revolver:更新時にフォークされたJVMを自動的に再起動します。
  • sbt-conscript (ドキュメント):GitHubとMaven Centralを使用してアプリを配布します。
  • sbt-git:sbtからgitコマンドを実行します。
  • sbt-errors-summary:コンパイルエラーのサマリーを表示します。
  • MiMa:Scalaライブラリのバイナリ互換性管理。
  • sbt-groll:sbt内でgit履歴をナビゲートします。
  • sbt-dynver:gitメタデータからプロジェクトのバージョンを動的に設定します。
  • sbt-prompt:sbtプロンプトにプロンプトレットとテーマを追加します。
  • sbt-crossproject:Scala、Scala.js、Scala Nativeのクロスビルドを行います。
  • sbt-proguard:コンパイル済みソースでProGuardを実行します。
  • sbt-structure:XML形式でプロジェクト構造を抽出します。
  • sbt-jni:JNIを使用するプロジェクトを扱うためのヘルパー。
  • sbt-jol:sbtからOpenJDK Javaオブジェクトレイアウトを検査します。
  • sbt-musical:sbtからiTunesを制御します(Macのみ)。
  • sbt-travisci:Travis CIとの統合。
  • hoarder:将来のビルドのためにコンパイルアーティファクトをキャッシュします。
  • sbt-javaagent:プロジェクトにJavaエージェントを追加します。
  • sbt-jshell:sbt用のJava REPL。
  • sbt-check:タイパーフェーズまで、およびそれを含むまでコンパイルします。
  • sbt-mima-version-check:チェックするMimaのバージョンを自動化します。
  • sbt-tmpfs:tmpfsを利用してビルドを高速化します。
  • sbt-sh:sbtからシェルコマンドを実行します。
  • sbt-ammonite-classpathAmmoniteAlmondのクラスパスをエクスポートします。
  • sbt-version-scheme-enforcer-plugin:宣言された`versionScheme`からライブラリのMima設定を導出します。Early SemVer、Strict SemVer、およびPackage Versioning Policy(PVP)をサポートしています。

IDE統合プラグイン 

  • sbteclipse:Eclipseプロジェクト定義ジェネレーター。
  • sbt-sublime:Sublime Textプロジェクトジェネレーター。

テストプラグイン 

  • scripted:sbtプラグインの統合テスト。
  • sbt-jmh:sbtからJava Microbenchmark Harness(JMH)ベンチマークを実行します。
  • sbt-doctest:Scaladocコメントからテストを生成して実行します。
  • gatling-sbt:Gatlingを使用したパフォーマンスおよび負荷テスト。
  • sbt-multi-jvm:複数のJVMを使用してテストを実行します。
  • sbt-scalaprops:scalapropsプロパティベーステストの統合。
  • sbt-testng:TestNGフレームワークの統合。
  • sbt-jcstress:Java Concurrency Stress Test(jcstress)の統合。
  • sbt-stryker4s:ミューテーションテストを使用してテストをテストします。
  • sbt-cached-ci:CI環境のための増分sbtビルド。

ライブラリ依存関係プラグイン 

  • coursier:純粋なScala依存関係フェッチャー。
  • sbt-dependency-graph:GraphML、graphviz、またはASCIIを使用して依存関係グラフを作成します。
  • sbt-updates:依存関係の更新されたバージョンを一覧表示します。
  • fm-sbt-s3-resolver:Amazon S3を使用してアーティファクトを解決および公開します。
  • sbt-s3-resolver:Amazon S3を使用して依存関係を解決します。
  • sbt-dependency-check:既知の脆弱性/CVEについて依存関係をチェックします。
  • sbt-lock:明示的なsbt依存関係を含むロックファイルを作成します。
  • sbt-license-report:依存関係で使用されているライセンスのレポートを生成します。
  • sbt-duplicates-finder:プロジェクトのクラスパスで競合するクラスとリソースを検出します。
  • sbt-google-cloud-storage:Google Cloud Storageのレゾルバーとパブリッシャー。
  • sbt-trace:他のプロジェクトでのクライアントまたはライブラリの使用のトレースを見つけます。
  • safety-plugin:会社全体で指定されたバージョンの依存関係の使用を強制します。
  • sbt-dependency-lock:依存関係のロックファイルを生成し、ビルド時に変更をチェックします。
  • sbt-unzip:プロジェクト内の任意の場所にzip依存関係を抽出します。

ウェブおよびフロントエンド開発プラグイン 

  • Play Framework:ScalaとJava向けのリアクティブウェブフレームワーク。
  • Scala.js:ScalaからJavaScriptへのコンパイラ。
  • xsbt-web-plugin:サーブレットサポート。
  • sbt-web:ウェブ向けsbtプラグインを構築するためのライブラリ。
  • sbt-web-scalajs:任意のウェブサーバーでScala.jsを使用します。
  • sbt-less:Less CSSコンパイルサポート。
  • sbt-js-engine:JavaScriptを使用するsbtプラグインのサポート。
  • sbt-typescript:TypeScriptコンパイルサポート。
  • sbt-uglify:UglifyJSを使用したJavaScriptミニファイア。
  • sbt-terser:terserを使用したJavaScript(ES6+)ミニファイア。
  • sbt-digest:アセットのチェックサムを生成します。
  • sbt-scalatra:Scalatraアプリのビルドと実行。
  • sbt-scala-js-map:GithubでホストされているScala.jsプロジェクトのソースマップを設定します。
  • sbt-gzip:アセットのgzip圧縮。
  • sbt-stylus:Stylusスタイルシートコンパイラ。
  • sbt-hepek:Scalaコードから直接静的ウェブサイトをレンダリングします。
  • sbt-puresass:Sassスタイルのコンパイルのためのsbt-webプラグイン。
  • sbt-scala-ts:ScalaJSソースからTypeScript宣言ファイルを生成し、Nodeモジュールを出力します。

データベースプラグイン 

  • scalikejdbc-mapper-generator:データベーススキーマからのScalaコードジェネレーター。
  • sbt-dynamodb:sbtからローカルのAmazon DynamoDBテストインスタンスを実行します。
  • sbt-migrations:データベースマイグレーションマネージャー。

フレームワーク固有のプラグイン 

  • sbt-newrelic:sbt-native-packagerでビルドされたアーティファクトに対するNewRelicサポート。
  • sbt-spark:Sparkアプリケーションコンフィギュレーター。
  • sbt-api-builder:sbtのシェル内からのApiBuilderのサポート。

コードジェネレータープラグイン 

  • sbt-buildinfo:SBT設定キーからScalaコードを生成します。
  • sbt-scalaxb:XMLスキーマとWSDLからモデルクラスを生成します。
  • sbt-protobuf:protobufコードジェネレーター。
  • sbt-header:ソースコードファイルヘッダー(著作権表示など)を自動生成します。
  • sbt-boilerplate:TupleXとFunctionXの定型コードジェネレーター。
  • sbt-avro:Apache Avroスキーマとプロトコルジェネレーター。
  • sbt-aspectj:sbtのAspectJウィービング。
  • sbt-protoc:protocを使用したprotobufコードジェネレーター。
  • sbt-contraband (ドキュメント):GraphQLスキーマから擬似ケースクラスを生成します。
  • sbt-antlr4:sbtからANTLR v4を実行します。
  • sbt-sql:SQLからモデルクラスを生成します。
  • sbt-partial-unification:Scalaで部分的なユニフィケーションサポートを有効にします(SI-2712)。
  • sbt-i18n:i18nバンドルをScalaコードに変換します。
  • sbt-lit:sbtでリテレートコードをビルドします。
  • sbt-embedded-files:globで指定されたファイルの内容を文字列またはバイト配列として含むScalaオブジェクトを生成します。
  • sbt-scala-ts:コンパイルされたScala型(ケースクラス、トレイト、オブジェクトなど)に従ってTypeScriptコードを生成します。

静的コード分析プラグイン 

  • wartremover:柔軟なScalaリンティングツール。
  • scalastyle-sbt-plugin:Scalastyleを使用したコードスタイルチェック。
  • sbt-scapegoat:Scapegoatを使用した静的分析。
  • sbt-stats:ソースコード統計(コード行数など)を生成します。
  • sbt-scalafix:Scalafixを使用したScalaのリファクタリングとリンティングツール。
  • sbt-explicit-dependencies:すべてのライブラリ依存関係を正しく宣言していることを確認します。
  • sbt-taglist:ソースファイル内のタグ(TODOやFIXMEなど)を見つけます。
  • sbt-rewarn:増分コンパイルにもかかわらず、常にコンパイル警告を表示します。
  • sbt-jcheckstyle:Checkstyleを使用したJavaコードスタイルチェック。
  • sbt-sonarSonarQubeとの統合。
  • sbt-scala2plantuml:ScalaコードからPlantUMLダイアグラムを生成します。

コードカバレッジプラグイン 

  • sbt-scoverage:Scoverageを使用したScalaコードカバレッジ。
  • sbt-jacoco:JaCoCoを使用したScalaおよびJavaコードカバレッジ。

新規プロジェクトプラグインの作成 

  • sbt-fresh:意見の反映された新しいsbtプロジェクトを作成します。

社内プラグイン 

  • sbt-houserules:sbtモジュールのためのハウスルール設定。

検証プラグイン 

  • sbt-stainless:stainlessを使用してScalaまたはDottyコードを検証します。

言語サポートプラグイン 

  • sbt-frege:sbtでFregeコードをビルドします。
  • sbt-cc:sbtでCおよびC++ソースファイルをコンパイルします。