clang-formatのレイアウトアルゴリズムを基に、設定可能なスタイルでPythonソースファイルを整形するフォーマッター。
diffplug/spotless
GradleとMaven向けのビルドプラグインフレームワーク。多くの言語やファイル形式に対応したフォーマッターとリンターを実行します。
- スター
- 5,720
- フォーク
- 565
- 未解決の Issue
- 251
- 最終コミット
- 4 日前
これは何?
Spotlessは、プロジェクトのソースファイルにコードフォーマッターを適用し、フォーマットされていないファイルがあるとビルドを失敗させるビルドツール用プラグインです。GradleとMavenで利用でき、SBTプラグインは別途メンテナンスされています。spotlessApplyのような単一のコマンドを実行すると、ルールに違反するファイルを書き換えます。spotlessCheckは違反を報告するため、CIでフォーマットを徹底できます。
Java、Kotlin、Groovy、Scala、JavaScript、TypeScript、SQL、YAML、Markdown、Python、C++、シェルスクリプトなど、幅広い言語に対応しています。google-java-format、ktlint、Prettier、Black、clang-formatなどの定評あるフォーマッターを利用できるほか、正規表現による置換、空白の削除、ライセンスヘッダーの追加、任意のネイティブコマンドの実行に使える汎用ステップも備えています。
また、冪等性のチェック、文字エンコーディングと改行コードの処理、Gitを使って変更ファイルだけを対象にする段階的なフォーマット、Gradleのビルドキャッシュと構成キャッシュへの対応など、統合に関する機能も提供します。
主な機能
- 01spotlessCheckとspotlessApplyタスクでフォーマットをチェックし、自動修正します。
- 02Java、Kotlin、Groovy、Scala、JavaScript、TypeScript、SQL、YAML、Markdownなどに対応しています。
- 03google-java-format、ktlint、Prettier、Black、clang-formatなどのフォーマッターを利用できます。
- 04Gitのrefを基準に段階的にフォーマットし、変更されたファイルだけを処理します。
- 05正規表現による置換、空白の削除、ライセンスヘッダーの追加に使える汎用ステップを備えています。
ユースケース
- CIで、多言語対応のJavaまたはKotlinのモノレポ全体に一貫したコードスタイルを適用する。
- ローカルで開発しながら、プルリクエストで変更されたファイルだけを自動フォーマットする。
- ビルド内のすべてのソースファイルにライセンスヘッダーを追加したり、importの順序を整えたりする。
- アプリケーションコードとあわせて、SQL、YAML、Markdownを1つのツールでフォーマットする。
クイックスタート
- 1
plugin-gradle または plugin-maven ガイドに従って、Gradle または Maven のビルドに Spotless プラグインを追加する
- 2
Gradle でフォーマットを適用する
./gradlew spotlessApply - 3
Maven でフォーマットを適用する
mvn spotless:apply
使う前に知っておきたいこと
- 公式サポートの対象は Gradle と Maven のみです。SBT との連携は外部提供です。
- 機能やフォーマッターのサポート状況はビルドツールによって異なるため、一部の手順は Gradle でのみ利用できます。
収録されている特集
トピック
よくある質問
- spotless とは?
- GradleとMaven向けのビルドプラグインフレームワーク。多くの言語やファイル形式に対応したフォーマッターとリンターを実行します。 Spotlessは、プロジェクトのソースファイルにコードフォーマッターを適用し、フォーマットされていないファイルがあるとビルドを失敗させるビルドツール用プラグインです。GradleとMavenで利用でき、SBTプラグインは別途メンテナンスされています。spotlessApplyのような単一のコマンドを実行すると、ルールに違反するファイルを書き換えます。spotlessCheckは違反を報告するため、CIでフォーマットを徹底できます。
- spotless は無料で使えますか?ライセンスは?
- spotless は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- spotless は今もメンテナンスされていますか?
- 活発にメンテナンス中。spotless の最終コミットは 2026年11月2日 です。
- spotless は何に使えますか?
- CIで、多言語対応のJavaまたはKotlinのモノレポ全体に一貫したコードスタイルを適用する。 ローカルで開発しながら、プルリクエストで変更されたファイルだけを自動フォーマットする。 ビルド内のすべてのソースファイルにライセンスヘッダーを追加したり、importの順序を整えたりする。 アプリケーションコードとあわせて、SQL、YAML、Markdownを1つのツールでフォーマットする。
- spotless のインストール方法は?
- plugin-gradle または plugin-maven ガイドに従って、Gradle または Maven のビルドに Spotless プラグインを追加する Gradle でフォーマットを適用する: ./gradlew spotlessApply Maven でフォーマットを適用する: mvn spotless:apply
- spotless はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/diffplug/spotless
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
Ruby Style Guideのルールを適用し、多くの違反を自動修正できるRuby向け静的コード解析・フォーマッター。
Blackは、ファイルをその場で書き換え、差分を最小限に抑える、独自の方針を持つ決定論的なPythonコードフォーマッターです。
PER-CSやSymfonyなどのPHPコーディング規約に準拠するよう、コードを自動修正するPHP製CLIツールです。
Pythonのimport文を自動でソート・グループ化するユーティリティ兼ライブラリです。
Java、Kotlin、Androidライブラリをsourcesとjavadoc付きでMaven Centralやその他のNexusリポジトリに公開するGradleプラグインです。