菜单

Eclipse 和 Java 开发

相关源文件

目的与范围

本文档提供了针对 Eclipse IDE 和 Java 开发环境的 .gitignore 模式的全面文档。它涵盖了防止不必要的 Eclipse 工作区文件、Java 编译产物和系统生成文件提交到版本控制系统的 gitignore 模式。有关 JetBrains IDE 模式(包括用于 Java 开发的 IntelliJ IDEA)的信息,请参阅 JetBrains IDE。有关通用开发环境信息,请参阅 开发环境模板

Eclipse IDE 概述

Eclipse 是一个流行的集成开发环境 (IDE),主要用于 Java 开发,但通过插件也支持许多其他语言。在使用 Eclipse 项目时,会生成许多元数据和配置文件,这些文件通常应从版本控制中排除。

Eclipse 工作区结构

下图说明了典型的 Eclipse 工作区结构,并重点介绍了应从版本控制中排除的文件和目录。

来源: Global/Eclipse.gitignore1-11

Eclipse 特定模式

核心 Eclipse 文件

这些模式排除基本的 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 行
*.pydevprojectPython 开发配置 (PyDev 插件)。第 20 行
.cprojectC/C++ 项目配置 (CDT 插件)。第 23 行
.autotoolsCDT autotools 配置。第 26 行
.factorypathJava 注解处理器配置。第 29 行
.buildpathPHP 开发配置 (PDT 插件)。第 32 行
.target目标平台定义 (sbteclipse 插件)。第 35 行
.tern-projectJavaScript 类型推断引擎配置。第 38 行
.texlipseLaTeX 编辑配置。第 41 行
.springBeansSpring Tool Suite 配置。第 44 行

来源: Global/Eclipse.gitignore14-44

注解处理和代码工具

现代 Java 开发经常使用注解处理和代码推荐工具。

模式描述源文件行
.recommenders/代码推荐器数据目录。第 47 行
.apt_generated/注解处理工具生成的目录。第 50 行
.apt_generated_test/注解处理工具生成的测试目录。第 51 行

来源: Global/Eclipse.gitignore47-51

特定语言的 Eclipse 文件

Eclipse 支持多种语言的开发,每种语言都有特定的配置文件。

模式描述源文件行
.cache-mainScala IDE 缓存文件。第 54 行
.scala_dependenciesScala 依赖跟踪文件。第 55 行
.worksheetScala 工作表文件。第 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 特定模式

Java 构建过程和产物

此图说明了 Java 构建过程以及应从版本控制中排除的产物。

来源: Java.gitignore1-23

已编译的 Java 文件

模式描述源文件行
*.class已编译的 Java 类文件。第 2 行
*.log执行期间生成的日志文件。第 5 行
*.ctxtBlueJ 上下文文件。第 8 行
.mtj.tmp/Mobile Tools for Java 临时目录。第 11 行

来源: Java.gitignore1-11

Java 包文件

模式描述源文件行
*.jarJava 归档文件。第 14 行
*.warWeb 应用程序归档文件。第 15 行
*.narNorflash 归档文件。第 16 行
*.ear企业应用程序归档文件。第 17 行
*.zipZIP 归档文件。第 18 行
*.tar.gz压缩的 tar 文件。第 19 行
*.rarRAR 归档文件。第 20 行

来源: Java.gitignore14-20

Java 虚拟机文件

模式描述源文件行
hs_err_pid*JVM 崩溃日志文件。第 23 行
replay_pid*JVM 回放文件。第 24 行

来源: Java.gitignore23-24

与操作系统的集成

在 Windows 系统上开发 Java 应用程序时,可能需要忽略其他文件。这些文件包括:

模式描述
Thumbs.dbWindows 缩略图缓存文件。
*.stackdumpWindows 崩溃转储文件。
[Dd]esktop.ini文件夹配置文件。
Windows 安装程序文件。*.cab, *.msi, *.msix, *.msm, *.msp

来源: Global/Windows.gitignore1-24

合并 Eclipse 和 Java 模式

模式合并策略

下图说明了如何有效合并 Eclipse 和 Java gitignore 模式以实现完整的开发环境。

来源: Global/Eclipse.gitignore1-60 Java.gitignore1-24

最佳实践

Eclipse 项目文件建议

对于 Eclipse 项目,请考虑以下建议:

  1. 有选择地跟踪 .project 文件:默认情况下,Eclipse 模板不忽略 .project 文件,因为它包含重要的项目配置。请评估是否应为您特定的项目跟踪此文件。

  2. 与 Java 模式结合使用:对于 Eclipse 中的 Java 开发,请同时结合使用 Eclipse 模式和 Java 模式。

  3. 特定插件的注意事项:如果使用特定的 Eclipse 插件(PyDev、CDT、Spring Tools),请确保包含相关模式。

文件类型是否在 Git 中跟踪?原理
.project通常是,是包含基本项目定义信息。
.classpath取决于上下文包含可能特定于环境的路径。
src/ 文件源代码应始终被跟踪。
bin/ 文件编译后的输出应重新生成,不应被跟踪。
.settings/通常是,否通常包含用户特定的首选项。

来源: Global/Eclipse.gitignore58-60

处理依赖管理

对于使用依赖管理工具的 Java 项目:

  1. Maven 项目:跟踪 pom.xml,但忽略 target/ 目录。
  2. Gradle 项目:跟踪 build.gradle,但忽略 .gradle/ 目录和 build/ 目录。
  3. Ivy 项目:跟踪 ivy.xml,但忽略 ivy-cache/ 目录。

来源: Java.gitignore14-20

结论

正确配置 Eclipse 和 Java 开发环境的 gitignore 模式,通过排除构建产物、临时文件和 IDE 特定配置,有助于维护一个干净的仓库。本指南中记录的模式涵盖了 Eclipse 和 Java 开发过程生成的最常见文件,确保只有相关的源代码和项目配置被纳入版本控制。