Skip to content

sbt/sbt-java-formatter

Repository files navigation

An sbt plugin for formatting Java code. This plugin began as a combination of ideas from this blog post and this maven plugin, though it has evolved since.

Usage

Add the plugin to project/plugins.sbt:

addSbtPlugin("com.lightbend.sbt" % "sbt-java-formatter" % --latest version---)

For available versions see releases.

  • javafmt formats Java files

  • javafmtAll formats Java files for all configurations (Compile and Test by default)

  • javafmtCheck fails if files need reformatting

  • javafmtCheckAll fails if files need reformatting in any configuration (Compile and Test by default)

  • The javafmtOnCompile setting controls whether the formatter kicks in on compile (false by default).

  • The javafmtStyle setting defines the formatting style: Google Java Style (by default) or AOSP style.

This plugin requires sbt 1.3.0+.

Enable in other scopes (eg IntegrationTest)

The sbt plugin is enabled by default for the Test and Compile configurations. Use JavaFormatterPlugin.toBeScopedSettings to enable the plugin for the IntegrationTest scope and then use It/javafmt to format.

inConfig(IntegrationTest)(JavaFormatterPlugin.toBeScopedSettings)

Configuration

This plugin uses the Google Java Format library, which makes it quite opinionated and not particularly configurable.

If you want to tweak the format, take a minute to consider whether it is really worth it, and have a look at the motivations in the Google Java Style Guide. If you decide you really need more flexibility, you could consider other plugins such as the sbt-checkstyle-plugin

Contributing

Yes, we'll happily accept PRs to improve the plugin. We expect you to adhere to the Lightbend Community Code of Conduct and to sign the Lightbend Contributor License Agreement - CLA.

Take a look at the contributors graph if you want to contact any of the contributors directly.

License

Apache v2