Java プロジェクト用 .gitignore

Maven または Gradle を使用する Java プロジェクト向けの包括的な .gitignore。コンパイル済みクラス、ビルドディレクトリ、IDE ファイル、JAR/WAR ビルドアーティファクトを網羅します。

Language

詳細な説明

Java プロジェクトはバージョン管理から除外すべき大量のビルドアーティファクトを生成します。MavenGradle のどちらを使用していても、適切な .gitignore でコンパイル済みクラスやビルドキャッシュのコミットを防ぐことが重要です。

ビルドツールの出力:

  • target/ — Maven のデフォルト出力ディレクトリ。コンパイル済みの .class ファイル、パッケージ化された .jar/.war ファイル、テストレポートを含みます。mvn clean install で完全に再生成されます。
  • build/ — Gradle のデフォルト出力ディレクトリ。Maven の target/ と同じ目的です。
  • .gradle/ — Gradle のプロジェクトレベルキャッシュ。依存関係メタデータ、タスク出力キャッシュ、ファイルハッシュを保存します。大規模プロジェクトでは数百メガバイトに達することがあります。
  • out/ — Maven や Gradle を使用しない場合の IntelliJ IDEA デフォルトコンパイル出力ディレクトリ。

コンパイル済みファイル:

  • *.class — コンパイル済み Java バイトコード。常にソースから再現可能であり、バージョン管理すべきではありません。
  • *.jar*.war*.ear — パッケージ化されたアプリケーションアーカイブ。CI/CD パイプラインがビルドするものであり、ソース管理に含めるべきではありません。

IDE 固有のパターン:

  • .idea/ — IntelliJ IDEA のプロジェクト設定。ほとんどのファイルはユーザー固有です(ウィンドウレイアウト、ローカルパスを含む実行設定)。共有フォーマットルール用に .idea/codeStyleSettings.xml をコミットするチームもあります。
  • *.iml — ローカル依存パスを含む IntelliJ モジュールファイル。
  • .settings/.project.classpath — Eclipse ワークスペースファイル。

その他のパターン:

  • hs_err_pid*.log — HotSpot が生成する JVM クラッシュログ。
  • .factorypath — Eclipse が生成するアノテーションプロセッサ設定。

重要なポイント: ビルドツールラッパー(mvnwgradlew)とラッパープロパティはコミットしますが、コンパイル出力はコミットしません。gradle/wrapper/gradle-wrapper.jarコミットすべきです。開発者がグローバルインストールなしで Gradle を起動できるようにするためです。

ユースケース

IntelliJ と Eclipse の両方を使用する Spring Boot チームが、IDE 設定と Maven ビルド出力の両方をコンフリクトなく処理する .gitignore を必要としています。

試してみる — .gitignore Generator

フルツールを開く