Java プロジェクト用 .gitignore
Maven または Gradle を使用する Java プロジェクト向けの包括的な .gitignore。コンパイル済みクラス、ビルドディレクトリ、IDE ファイル、JAR/WAR ビルドアーティファクトを網羅します。
Language
詳細な説明
Java プロジェクトはバージョン管理から除外すべき大量のビルドアーティファクトを生成します。Maven と Gradle のどちらを使用していても、適切な .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 が生成するアノテーションプロセッサ設定。
重要なポイント: ビルドツールラッパー(mvnw、gradlew)とラッパープロパティはコミットしますが、コンパイル出力はコミットしません。gradle/wrapper/gradle-wrapper.jar はコミットすべきです。開発者がグローバルインストールなしで Gradle を起動できるようにするためです。
ユースケース
IntelliJ と Eclipse の両方を使用する Spring Boot チームが、IDE 設定と Maven ビルド出力の両方をコンフリクトなく処理する .gitignore を必要としています。