Community Plugins
The GitHub sbt Organization
The sbt organization is available for use by any sbt plugin. Developers who contribute their plugins into the community organization will still retain control over their repository and its access. The goal of the sbt organization is to organize sbt software into one central location.
A side benefit to using the sbt organization for projects is that you can use gh-pages to host websites under the https://www.scala-sbt.org domain.
The sbt autoplugin giter8 template is a good place to start. This sets up a new sbt plugin project appropriately. The generated README
includes a summary of the steps for publishing a new community plugin.
[Edit] this page to submit a pull request that adds your plugin to the list.
- sbt-scalafmt: code formatting using Scalafmt.
- sbt-scalariform: code formatting using Scalariform.
- neo-sbt-scalafmt: code formatting using Scalafmt.
- sbt-java-formatter: code formatting for Java sources.
- sbt-source-format: code formatting for Java and clang (c/c++/objc) sources.
- safety-plugin: Enforce the use of style rules across your company
One jar plugins
- sbt-assembly: create über JARs.
Verification plugins
- sbt-stainless: verify Scala or Dotty code using stainless.
Language support plugins
Release plugins
- sbt-pgp: sign artefacts using PGP/GPG and manage signing keys.
Deployment integration plugins
- sbt-heroku: deploy applications directly to Heroku.
- sbt-docker-compose: launch Docker images using docker compose.
- sbt-appengine deploy your webapp to Google App Engine.
- sbt-marathon: deploy applications on Apache Mesos using the Marathon framework.
- sbt-riotctl: deploy applications as systemd services directly to a Raspberry Pi, ensuring dependencies (e.g. wiringpi) are met.
- sbt-kind: load built docker images into a kind cluster.
IDE integration plugins
- sbteclipse: Eclipse project definition generator.
- sbt-sublime: Sublime Text project generator.
Test plugins
- sbt-stryker4s: Test your tests with mutation testing.
- sbt-doctest: generate and run tests from Scaladoc comments.
- scripted: integration testing for sbt plugins.
- sbt-jmh: run Java Microbenchmark Harness (JMH) benchmarks from sbt.
- gatling-sbt: performance and load-testing using Gatling.
- sbt-multi-jvm: run tests using multiple JVMs.
- sbt-scalaprops: scalaprops property-based testing integration.
- sbt-testng: TestNG framework integration.
- sbt-jcstress: Java Concurrency Stress Test (jcstress) integration.
- sbt-cached-ci: Incremental sbt builds for CI environments.
Library dependency plugins
- coursier: pure Scala dependency fetcher.
- sbt-dependency-graph: create dependency graphs using GraphML, graphviz or ASCII.
- sbt-updates: list updated versions of dependencies.
- fm-sbt-s3-resolver: resolve and publish artefacts using Amazon S3.
- sbt-s3-resolver: resolve dependencies using Amazon S3.
- sbt-dependency-check: check dependencies for known vulnerabilities/CVEs.
- sbt-lock: create a lock file containing explicit sbt dependencies.
- sbt-license-report: generate reports of licenses used by dependencies.
- sbt-duplicates-finder: detect class and resources conflicting in your project's classpath.
- sbt-google-cloud-storage: resolver and publisher for Google Cloud Storage.
- sbt-trace: find traces of the client or library usage in other projects.
- safety-plugin: Enforce the use of specified versions of dependencies across your company
- sbt-dependency-lock: generate dependency lockfiles and check for changes at build time.
- sbt-unzip: Extract zip dependencies where you want in your project.
- sbt-license-check: check and report on licenses used, fail build for disallowed licenses.
- sbt-pekko-version-check: check if the Apache Pekko modules match, fail build if they don't.
Web and frontend development plugins
- sbt-web: library for building sbt plugins for the web.
-
Play Framework: reactive web framework for Scala and Java.
-
Scala.js: Scala to JavaScript compiler.
-
xsbt-web-plugin: Servlet support.
-
sbt-web-scalajs: use Scala.js with any web server.
-
sbt-less: Less CSS compilation support.
-
sbt-js-engine: support for sbt plugins that use JavaScript.
-
sbt-typescript: TypeScript compilation support.
-
sbt-uglify: JavaScript minifier using UglifyJS.
-
sbt-terser: JavaScript (ES6+) minifier using terser.
-
sbt-digest: generate checksums of assets.
-
sbt-scalatra: build and run Scalatra apps.
-
sbt-scala-js-map: Configure source mapping for Scala.js projects hosted on Github.
-
sbt-gzip: gzip compressor for assets.
-
sbt-stylus: Stylus stylesheet compiler.
-
sbt-hepek: Render static websites directly from Scala code.
-
sbt-puresass: sbt-web plugin for Sass styles compilation.
-
sbt-scala-ts; generates TypeScript declaration files from ScalaJS sources and outputs Node modules.
Database plugins
- flyway-sbt Flyway database migration.
- scalikejdbc-mapper-generator: Scala code generator from database schema.
- sbt-dynamodb: run a local Amazon DynamoDB test instance from sbt.
- sbt-migrations: database migrations manager.
Code generator plugins
- sbt-buildinfo: generate Scala code from sbt setting keys.
-
sbt-scalaxb: generate model classes from XML schemas and WSDL.
-
sbt-protobuf: protobuf code generator.
-
sbt-header: auto-generate source code file headers (such as copyright notices).
-
sbt-boilerplate: TupleX and FunctionX boilerplate code generator.
-
sbt-avro: Apache Avro schema and protocol generator.
-
sbt-aspectj: AspectJ weaving for sbt.
-
sbt-protoc: protobuf code generator using protoc.
-
sbt-contraband (docs): generate pseudo-case classes from GraphQL schemas.
-
sbt-antlr4: run ANTLR v4 from sbt.
-
sbt-sql: generate model classes from SQL.
-
sbt-partial-unification: enable partial unification support in Scala (SI-2712).
-
sbt-i18n: transform your i18n bundles into Scala code.
-
sbt-lit: build literate code with sbt.
-
sbt-embedded-files: generate Scala objects containing the contents of glob-specified files as strings or byte-arrays.
-
sbt-scala-ts: generate TypeScript code according compiled Scala types (case class, trait, object, ...).
Static code analysis plugins
- wartremover: flexible Scala linting tool.
- scalastyle-sbt-plugin: code style checking using Scalastyle.
- sbt-scapegoat: static analysis using Scapegoat.
- sbt-stats: generate source code statistics (lines of code etc).
- sbt-scalafix: refactoring and linting tool for Scala using Scalafix.
- sbt-explicit-dependencies: check that you have declared all your library dependencies correctly
- sbt-taglist: find tags within source files (such as TODO and FIXME).
- sbt-rewarn: always display compilation warnings, despite the incremental compilation.
- sbt-jcheckstyle: Java code style checking using Checkstyle.
- sbt-sonar: integration with SonarQube.
- sbt-scala2plantuml: generates PlantUML diagrams from Scala code.
Utility and system plugins
-
sbt-git: run git commands from sbt.
-
sbt-vimquit: adds
:q
command.
-
tut: documentation and tutorial generator.
-
Laika: Transform Markdown or reStructuredText into HTML or PDF with Templating.
-
sbt-site: site generator.
-
sbt-microsites: generate and publish microsites using Jekyll.
-
sbt-unidoc: create unified API documentation across subprojects.
-
sbt-ghpages: publish generated sites to GitHub pages.
-
sbt-class-diagram: generate class diagrams from Scala source code.
-
sbt-api-mappings: generate Scaladoc
apiMappings
for common Scala libraries. -
literator: generate literate-style markdown docs from your sources.
-
sbt-example: generate ScalaTest test suites from examples in Scaladoc.
-
sbt-delombok: delombok Java sources files that contain Lombok annotations to make Javadoc contain Lombok-generated classes and methods.
-
sbt-alldocs: collect all the docs for a project and dependencies into a single folder.
-
sbt-apidoc: A port of apidocjs to sbt, to document REST Api.
-
sbt-github-pages (docs): publish a website to GitHub Pages with minimal effort - works well with GitHub Actions.
-
sbt-docusaur (docs): build a website using Docusaurus and publish to GitHub Pages with minimal effort - works well with GitHub Actions.
-
sbt-hl-compiler: compile the code snippets from documentation (to keep it consistent).
-
sbt-scaladoc-compiler: compile the code snippets included in Scaladoc comments.
- sbt-scoverage: Scala code coverage using Scoverage.
- sbt-jacoco: Scala and Java code coverage using JaCoCo.
Create new project plugins
- sbt-fresh: create an opinionated fresh sbt project.
Framework-specific plugins
- sbt-newrelic: NewRelic support for artefacts built with sbt-native-packager.
- sbt-spark: Spark application configurator.
- sbt-api-builder: support for ApiBuilder from within sbt's shell.