Plantilla .gitignore de Java explicada
Explica por qué Java.gitignore ignora archivos .class, archivos de paquete (jar, war) y registros de fallos de la JVM, y el problema del orden al usarla junto con plantillas de herramientas de compilación.
Java.gitignore es una plantilla corta de unas 13 líneas que solo trata los resultados de compilación y los archivos que deja la JVM. No incluye el target/ de Maven ni el build/ de Gradle, así que en un proyecto real lo normal es usarla junto con las plantillas de Maven o Gradle y la del IDE.
La regla que más atención merece es *.jar. Su intención es no meter archivos de distribución en el repositorio, pero también ignora el jar del wrapper de la herramienta de compilación, así que hay que cuidar el orden de la combinación.
Explicación regla por regla
| Patrón | Qué ignora y por qué |
|---|---|
*.class | Resultados de compilaciónEs el bytecode que genera javac a partir del código fuente. Con el código fuente se puede recrear en cualquier momento, y su contenido cambia según la versión del compilador. |
*.jar*.war*.nar*.ear*.zip*.tar.gz*.rar | Archivos de paqueteSon los archivos de distribución y comprimidos que salen de la compilación. El objetivo es obtener las dependencias desde registros como Maven Central en lugar de la antigua práctica de meter los jar directamente en el repositorio. |
hs_err_pid*replay_pid* | Registros de fallos de la JVMSon el hs_err_pid<número>.log que la JVM deja en el directorio de trabajo cuando termina de forma anómala y los archivos replay_pid para reproducir el compilador JIT. Son archivos de un solo uso para depurar. |
*.log | RegistrosSon los registros de ejecución de la aplicación. Si se confirman, cada ejecución genera cambios y puede filtrarse información de operación. |
*.ctxt.mtj.tmp/ | BlueJ y J2MESon los archivos de contexto del IDE educativo BlueJ y la carpeta temporal de Mobile Tools for Java (J2ME). Si no usas esas herramientas, no te afectan. |
Precauciones en la práctica
*.jartambién ignoragradle/wrapper/gradle-wrapper.jardel wrapper de Gradle. La regla!gradle-wrapper.jarde la plantilla de Gradle lo resuelve, pero como git sigue la última regla que coincide, hay que seleccionar Gradle después de Java.- Las carpetas de compilación (
target/,build/) no están en esta plantilla. Añade la plantilla de Maven o de Gradle. - Los archivos del IDE, como
.idea/de IntelliJ o.projecty.classpathde Eclipse, se tratan con las plantillas JetBrains y Eclipse. - Si de verdad necesitas guardar jars de bibliotecas en el repositorio, vuelve a incluir solo rutas concretas, por ejemplo
!libs/*.jar.
Plantilla 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*
Origen de las plantillas: github/gitignore/Java.gitignore @356fd7b (2026-09-11) · CC0-1.0