本文档提供了针对 Eclipse IDE 和 Java 开发环境的 .gitignore 模式的全面文档。它涵盖了防止不必要的 Eclipse 工作区文件、Java 编译产物和系统生成文件提交到版本控制系统的 gitignore 模式。有关 JetBrains IDE 模式(包括用于 Java 开发的 IntelliJ IDEA)的信息,请参阅 JetBrains IDE。有关通用开发环境信息,请参阅 开发环境模板。
Eclipse 是一个流行的集成开发环境 (IDE),主要用于 Java 开发,但通过插件也支持许多其他语言。在使用 Eclipse 项目时,会生成许多元数据和配置文件,这些文件通常应从版本控制中排除。
下图说明了典型的 Eclipse 工作区结构,并重点介绍了应从版本控制中排除的文件和目录。
来源: Global/Eclipse.gitignore1-11
这些模式排除基本的 Eclipse 工作区和项目文件。
| 模式 | 描述 | 源文件行 |
|---|---|---|
.metadata | 包含 Eclipse 内部配置的工作区元数据目录。 | 第 1 行 |
bin/ | 默认的编译输出目录。 | 第 2 行 |
tmp/ | 临时文件目录。 | 第 3 行 |
*.tmp, *.bak, *.swp, *~.nib | 各种临时和备份文件。 | 第 4-7 行 |
local.properties | 本地配置属性。 | 第 8 行 |
.settings/ | 项目特定设置目录。 | 第 9 行 |
.loadpath | 解释型语言的路径信息。 | 第 10 行 |
.recommenders | 代码推荐数据。 | 第 11 行 |
来源: Global/Eclipse.gitignore1-11
Eclipse 支持各种外部工具和插件,每个工具和插件都会生成自己的配置文件。
| 模式 | 描述 | 源文件行 |
|---|---|---|
.externalToolBuilders/ | 自定义外部工具构建器配置。 | 第 14 行 |
*.launch | 运行应用程序的启动配置。 | 第 17 行 |
*.pydevproject | Python 开发配置 (PyDev 插件)。 | 第 20 行 |
.cproject | C/C++ 项目配置 (CDT 插件)。 | 第 23 行 |
.autotools | CDT autotools 配置。 | 第 26 行 |
.factorypath | Java 注解处理器配置。 | 第 29 行 |
.buildpath | PHP 开发配置 (PDT 插件)。 | 第 32 行 |
.target | 目标平台定义 (sbteclipse 插件)。 | 第 35 行 |
.tern-project | JavaScript 类型推断引擎配置。 | 第 38 行 |
.texlipse | LaTeX 编辑配置。 | 第 41 行 |
.springBeans | Spring Tool Suite 配置。 | 第 44 行 |
来源: Global/Eclipse.gitignore14-44
现代 Java 开发经常使用注解处理和代码推荐工具。
| 模式 | 描述 | 源文件行 |
|---|---|---|
.recommenders/ | 代码推荐器数据目录。 | 第 47 行 |
.apt_generated/ | 注解处理工具生成的目录。 | 第 50 行 |
.apt_generated_test/ | 注解处理工具生成的测试目录。 | 第 51 行 |
来源: Global/Eclipse.gitignore47-51
Eclipse 支持多种语言的开发,每种语言都有特定的配置文件。
| 模式 | 描述 | 源文件行 |
|---|---|---|
.cache-main | Scala IDE 缓存文件。 | 第 54 行 |
.scala_dependencies | Scala 依赖跟踪文件。 | 第 55 行 |
.worksheet | Scala 工作表文件。 | 第 56 行 |
来源: Global/Eclipse.gitignore54-56
默认情况下,Eclipse 模板不忽略 .project 文件,该文件包含项目定义信息。
# Uncomment this line if you wish to ignore the project description file.
# Typically, this file would be tracked if it contains build/dependency configurations:
#.project
来源: Global/Eclipse.gitignore58-60
此图说明了 Java 构建过程以及应从版本控制中排除的产物。
| 模式 | 描述 | 源文件行 |
|---|---|---|
*.class | 已编译的 Java 类文件。 | 第 2 行 |
*.log | 执行期间生成的日志文件。 | 第 5 行 |
*.ctxt | BlueJ 上下文文件。 | 第 8 行 |
.mtj.tmp/ | Mobile Tools for Java 临时目录。 | 第 11 行 |
| 模式 | 描述 | 源文件行 |
|---|---|---|
*.jar | Java 归档文件。 | 第 14 行 |
*.war | Web 应用程序归档文件。 | 第 15 行 |
*.nar | Norflash 归档文件。 | 第 16 行 |
*.ear | 企业应用程序归档文件。 | 第 17 行 |
*.zip | ZIP 归档文件。 | 第 18 行 |
*.tar.gz | 压缩的 tar 文件。 | 第 19 行 |
*.rar | RAR 归档文件。 | 第 20 行 |
| 模式 | 描述 | 源文件行 |
|---|---|---|
hs_err_pid* | JVM 崩溃日志文件。 | 第 23 行 |
replay_pid* | JVM 回放文件。 | 第 24 行 |
在 Windows 系统上开发 Java 应用程序时,可能需要忽略其他文件。这些文件包括:
| 模式 | 描述 |
|---|---|
Thumbs.db | Windows 缩略图缓存文件。 |
*.stackdump | Windows 崩溃转储文件。 |
[Dd]esktop.ini | 文件夹配置文件。 |
| Windows 安装程序文件。 | *.cab, *.msi, *.msix, *.msm, *.msp |
来源: Global/Windows.gitignore1-24
下图说明了如何有效合并 Eclipse 和 Java gitignore 模式以实现完整的开发环境。
来源: Global/Eclipse.gitignore1-60 Java.gitignore1-24
对于 Eclipse 项目,请考虑以下建议:
有选择地跟踪 .project 文件:默认情况下,Eclipse 模板不忽略 .project 文件,因为它包含重要的项目配置。请评估是否应为您特定的项目跟踪此文件。
与 Java 模式结合使用:对于 Eclipse 中的 Java 开发,请同时结合使用 Eclipse 模式和 Java 模式。
特定插件的注意事项:如果使用特定的 Eclipse 插件(PyDev、CDT、Spring Tools),请确保包含相关模式。
| 文件类型 | 是否在 Git 中跟踪? | 原理 |
|---|---|---|
.project | 通常是,是 | 包含基本项目定义信息。 |
.classpath | 取决于上下文 | 包含可能特定于环境的路径。 |
src/ 文件 | 是 | 源代码应始终被跟踪。 |
bin/ 文件 | 否 | 编译后的输出应重新生成,不应被跟踪。 |
.settings/ | 通常是,否 | 通常包含用户特定的首选项。 |
来源: Global/Eclipse.gitignore58-60
对于使用依赖管理工具的 Java 项目:
pom.xml,但忽略 target/ 目录。build.gradle,但忽略 .gradle/ 目录和 build/ 目录。ivy.xml,但忽略 ivy-cache/ 目录。正确配置 Eclipse 和 Java 开发环境的 gitignore 模式,通过排除构建产物、临时文件和 IDE 特定配置,有助于维护一个干净的仓库。本指南中记录的模式涵盖了 Eclipse 和 Java 开发过程生成的最常见文件,确保只有相关的源代码和项目配置被纳入版本控制。