我最近想在我的 Android
项目中采用 GIT
的 submodules
但遇到了一些问题。
背景故事
我有多个项目,但许多项目使用相同的外部库(Android 库项目),以便使 GIT 更清洁,并使每个项目的 GIT 包含我使用 GIT 子模块所需的所有 Material 安卓库项目。这部分工作正常,我将库作为项目的子模块包含在内。
问题
但是 Android 使用这些库项目,它们基本上是添加到项目中的常规项目,我只能在 Eclipse 中添加一次相同的项目。因此,如果我需要一次处理多个项目,我必须使用 Eclipse/workspace 的多个实例,而不是以常规方式使用 Eclipse。
有没有办法让我的库项目在 eclipse 中只有 1 个实例,同时让所有项目都引用它们各自的库?或者我应该如何处理这个问题的任何其他建议?
非常感谢任何帮助
最佳答案
由于以下原因,您不能将库项目作为 Eclipse 中的单个实例。
- 每个使用该库的项目都可能引用不同版本的库。由于您的子模块是特定版本的物理 checkout (工作目录),因此无法在特定时间点表示存储库的多个状态。
解决方法:
- 为图书馆项目准备一个“服务器”位置。使用
git clone --bare
创建一个克隆就足够了。 - 将“服务器”库项目克隆到您的工作区。
- 为库项目添加前缀,以反射(reflect)使用它的主项目的名称。
- 为您需要使用该库的每个主要项目重复第 2 步和第 3 步。
- 每次您在库项目中进行更改时,都会创建一个功能分支。在每个主要项目中,考虑新功能是有用还是有阻碍。如果它不适合你显然需要重写你刚刚创建的功能。完成后更新库的版本(不要害羞使用带 Semantic Versioning 的标签)。
关于android - 具有相同 GIT 子模块的多个 Android 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16216261/