Template .gitignore do Java explicado
Explica por que o Java.gitignore ignora arquivos .class, arquivos de pacote (jar, war) e logs de falha da JVM, e o problema de ordem ao usá-lo junto com templates de ferramentas de build.
O Java.gitignore é um template curto, de cerca de 13 linhas, que trata apenas dos resultados de compilação e dos arquivos deixados pela JVM. Não inclui o target/ do Maven nem o build/ do Gradle, então em um projeto real o normal é usá-lo junto com os templates de Maven ou Gradle e o da IDE.
A regra que mais merece atenção é *.jar. A intenção é não colocar arquivos de distribuição no repositório, mas ela também ignora o jar do wrapper da ferramenta de build, então é preciso cuidar da ordem da combinação.
Explicação regra por regra
| Padrão | O que ignora e por quê |
|---|---|
*.class | Resultados de compilaçãoÉ o bytecode que o javac gera a partir do código-fonte. Com o código-fonte ele pode ser recriado a qualquer momento, e o conteúdo muda conforme a versão do compilador. |
*.jar*.war*.nar*.ear*.zip*.tar.gz*.rar | Arquivos de pacoteSão os arquivos de distribuição e compactados que saem do build. O objetivo é obter as dependências de registros como o Maven Central em vez da antiga prática de colocar os jars direto no repositório. |
hs_err_pid*replay_pid* | Logs de falha da JVMSão o hs_err_pid<número>.log que a JVM deixa no diretório de trabalho quando termina de forma anormal e os arquivos replay_pid para reproduzir o compilador JIT. São arquivos de uso único para depuração. |
*.log | LogsSão os logs de execução da aplicação. Se forem commitados, cada execução gera mudanças e informações de operação podem vazar. |
*.ctxt.mtj.tmp/ | BlueJ e J2MESão os arquivos de contexto da IDE educacional BlueJ e a pasta temporária do Mobile Tools for Java (J2ME). Se você não usa essas ferramentas, não há efeito. |
Cuidados na prática
*.jartambém ignora ogradle/wrapper/gradle-wrapper.jardo wrapper do Gradle. A regra!gradle-wrapper.jardo template do Gradle resolve isso, mas, como o git segue a última regra que corresponde, é preciso selecionar Gradle depois de Java.- As pastas de build (
target/,build/) não estão neste template. Adicione o template do Maven ou do Gradle. - Arquivos de IDE, como o
.idea/do IntelliJ ou.projecte.classpathdo Eclipse, são tratados com os templates JetBrains e Eclipse. - Se você realmente precisa guardar jars de bibliotecas no repositório, inclua de novo só caminhos específicos, como
!libs/*.jar.
Template original
# 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*
Origem dos templates: github/gitignore/Java.gitignore @356fd7b (2026-09-11) · CC0-1.0