github/gitignore · Java.gitignore

Java .gitignore テンプレート解説

Java.gitignore が .class ファイル、パッケージアーカイブ(jar・war)、JVM クラッシュログを無視する理由と、ビルドツールのテンプレートと併用するときの順序の問題を説明します。

ジェネレーターで開く Maven, Gradle, JetBrains, macOS と一緒に開く

Java.gitignore は 13 行ほどの短いテンプレートで、コンパイル結果と JVM が残すファイルだけを扱う。Maven の target/ や Gradle の build/ は含まれていないため、実際のプロジェクトでは Maven・Gradle テンプレートや IDE テンプレートと併用するのが普通である。

最も注目すべきルールは *.jar である。配布用アーカイブをリポジトリに入れないための意図だが、ビルドツールのラッパー(wrapper)jar まで一緒に無視されるため、組み合わせの順序に気を配る必要がある。

ルール別の解説

パターン何を、なぜ無視するか
*.classコンパイル結果javac がソースから作るバイトコードである。ソースさえあればいつでも作り直せ、コンパイラーのバージョンによって内容が変わる。
*.jar*.war*.nar*.ear*.zip*.tar.gz*.rarパッケージアーカイブビルド結果として出る配布ファイルと圧縮ファイルである。依存 jar をリポジトリに直接入れていた昔の方式の代わりに、Maven Central などのリポジトリから取得させることが目的である。
hs_err_pid*replay_pid*JVM クラッシュログJVM が異常終了したときに作業ディレクトリへ残す hs_err_pid<番号>.log と、JIT コンパイラー再現用の replay_pid ファイルである。デバッグ用の一時的なファイルである。
*.logログアプリケーションの実行ログである。ログファイルをコミットすると実行するたびに変更が生じ、運用情報が漏れるおそれがある。
*.ctxt.mtj.tmp/BlueJ・J2ME教育用 IDE BlueJ のコンテキストファイルと Mobile Tools for Java(J2ME)の一時フォルダーである。そのツールを使っていなければ影響はない。

実務での注意点

元のテンプレート

Java.gitignoreルール 13 行
# Compiled class file*.class# Log file*.log# BlueJ files*.ctxt# Mobile Tools for Java (J2ME).mtj.tmp/# Package Files #*.jar*.war*.nar*.ear*.zip*.tar.gz*.rar# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xmlhs_err_pid*replay_pid*

テンプレートの出典: github/gitignore/Java.gitignore @356fd7b (2026-09-11) · CC0-1.0

一緒に使うテンプレート

ほかのテンプレートの解説