Разбор шаблона .gitignore для Java
Почему Java.gitignore игнорирует файлы .class, архивы пакетов (jar, war) и журналы сбоев JVM, и какие проблемы с порядком возникают при совместном использовании с шаблонами инструментов сборки.
Java.gitignore — короткий шаблон примерно из 13 строк, который охватывает только результаты компиляции и файлы, оставляемые JVM. Ни target/ из Maven, ни build/ из Gradle в нём нет, поэтому в реальных проектах его обычно используют вместе с шаблонами Maven или Gradle и шаблоном IDE.
Особого внимания заслуживает правило *.jar. Его цель — не держать в репозитории архивы для распространения, но вместе с ними игнорируется и jar обёртки (wrapper) инструмента сборки, поэтому важен порядок шаблонов.
Разбор правил
| Шаблон | Что и почему игнорируется |
|---|---|
*.class | Результаты компиляцииБайт-код, который javac создаёт из исходников. При наличии исходников его всегда можно пересобрать, а содержимое зависит от версии компилятора. |
*.jar*.war*.nar*.ear*.zip*.tar.gz*.rar | Архивы пакетовФайлы дистрибутива и архивы, получаемые при сборке. Цель — вместо старой практики класть jar-зависимости прямо в репозиторий получать их из репозиториев вроде Maven Central. |
hs_err_pid*replay_pid* | Журналы сбоев JVMhs_err_pid<номер>.log, который JVM оставляет в рабочем каталоге при аварийном завершении, и файлы replay_pid для воспроизведения работы JIT-компилятора. Это одноразовые файлы для отладки. |
*.log | ЛогиЖурналы работы приложения. Если коммитить лог-файлы, при каждом запуске будут появляться изменения, а сведения о рабочей среде могут утечь. |
*.ctxt.mtj.tmp/ | BlueJ и J2MEФайлы контекста учебной IDE BlueJ и временная папка Mobile Tools for Java (J2ME). Если вы не пользуетесь этими инструментами, правила ни на что не влияют. |
На что обратить внимание на практике
*.jarигнорирует иgradle/wrapper/gradle-wrapper.jarобёртки Gradle. Эту проблему решает!gradle-wrapper.jarиз шаблона Gradle, но git следует последнему совпавшему правилу, поэтому выбирайте шаблоны так, чтобы Gradle шёл после Java.- Папок сборки (
target/,build/) в этом шаблоне нет. Добавьте шаблон Maven или Gradle. - Файлы IDE, такие как
.idea/в IntelliJ или.projectи.classpathв Eclipse, покрываются шаблонами JetBrains и Eclipse. - Если библиотечные jar действительно нужно хранить в репозитории, верните только конкретный путь, например
!libs/*.jar.
Исходный шаблон
# 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