android - 具有相同 GIT 子模块的多个 Android 项目

标签 android eclipse git git-submodules

我最近想在我的 Android 项目中采用 GITsubmodules 但遇到了一些问题。

背景故事

我有多个项目,但许多项目使用相同的外部库(Android 库项目),以便使 GIT 更清洁,并使每个项目的 GIT 包含我使用 GIT 子模块所需的所有 Material 安卓库项目。这部分工作正常,我将库作为项目的子模块包含在内。

问题

但是 Android 使用这些库项目,它们基本上是添加到项目中的常规项目,我只能在 Eclipse 中添加一次相同的项目。因此,如果我需要一次处理多个项目,我必须使用 Eclipse/workspace 的多个实例,而不是以常规方式使用 Eclipse。

有没有办法让我的库项目在 eclipse 中只有 1 个实例,同时让所有项目都引用它们各自的库?或者我应该如何处理这个问题的任何其他建议?

非常感谢任何帮助

最佳答案

由于以下原因,您不能将库项目作为 Eclipse 中的单个实例。

  • 每个使用该库的项目都可能引用不同版本的库。由于您的子模块是特定版本的物理 checkout (工作目录),因此无法在特定时间点表示存储库的多个状态

解决方法:

  1. 为图书馆项目准备一个“服务器”位置。使用 git clone --bare 创建一个克隆就足够了。
  2. 将“服务器”库项目克隆到您的工作区。
  3. 为库项目添加前缀,以反射(reflect)使用它的主项目的名称。
  4. 为您需要使用该库的每个主要项目重复第 2 步和第 3 步。
  5. 每次您在库项目中进行更改时,都会创建一个功能分支。在每个主要项目中,考虑新功能是有用还是有阻碍。如果它不适合你显然需要重写你刚刚创建的功能。完成后更新库的版本(不要害羞使用带 Semantic Versioning 的标签)。

关于android - 具有相同 GIT 子模块的多个 Android 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16216261/

相关文章:

android - 文件输出流格式化?

java - 如何从 Java HTTPResponse 解析 JSON?

javascript - Eclipse 项目文件夹

GIT:之后删除不需要的文件

android - 在 Activity 中永久隐藏导航栏

android - iOS 和 Android 代码对比

java - Eclipse IDE - 'Outline' 功能的源代码

java - Intent 未定义

git - 删除 merge 提交,保留当前更改

git - 为什么 git log --cherry-pick 没有删除等效的提交?