android - 我应该如何组织 Android 项目(包括库)的源代码管理?

标签 android git version-control github project-organization

我需要一些帮助来确定组织我的 Android 项目的最佳方式(或最佳实践)。为简单起见,假设我的 Android Eclipse 工作区是 C:\Android\Projects\。在该文件夹中,我喜欢将应用程序与库分开,我还有另外两个文件夹,C:\Android\Projects\ApplicationsC:\Android\Projects\Components

对于一个项目,我从 GitHub 克隆了一个库到 Components 文件夹中,比方说 C:\Android\Projects\Componentes\SampleLib(在该文件夹中有两个文件夹 TheLibTheLibExample)。我的应用程序创建到 C:\Android\Projects\Applications\MyTestApp。然后我按照 these instructions 将库包含到应用程序中.

现在假设我想使用 GitHub 与开源社区共享我的应用程序。我将创建一个存储库并将所有内容从 C:\Android\Projects\Applications\MyTestApp 推送到某个存储库。

如果有人想要 fork 我的应用程序甚至帮助我,它需要库来编译和运行它,这不包含在我的项目本身中。 default.properties 文件将包含类似 android.library.reference.1=../Components/SampleLib/TheLib 的内容,并且需要有人手动克隆该库并且他需要将它放在相同的相对路径中,否则它会弄乱我的应用程序的源代码控制。

我能想到的解决这个问题的唯一方法是像这样组织我的工作区:

C:\Android\Projects\Applications\MyTestApp\TheApp
C:\Android\Projects\Applications\MyTestApp\TheLib
C:\Android\Projects\Componentes\SampleLib

而且我的存储库应该充满了 C:\Android\Projects\Applications\MyTestApp\ 中的内容。

但是当库更新时会发生什么?我不能简单地提取新的更改,我需要将它们复制到 TheLib 文件夹中。在以前的文件夹组织中,不需要这样做,因为我引用的是原始克隆存储库而不是副本。

那我该怎么办呢?我应该选择第一个选项并让任何 fork 我的项目的人按照他们认为合适的方式处理库依赖性,还是应该选择第二个选项并通过在原始文件夹从它的中提取更改时保持两个文件夹同步来给每个人更多的工作存储库?

最佳答案

也许 git 子模块可以解决您的问题。

关于android - 我应该如何组织 Android 项目(包括库)的源代码管理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7476202/

相关文章:

android - 在android中实现两个微调器之间的关系

java - youtube api 显示 channel 视频 android

ruby-on-rails - 将基于 cloud9 的 rails 应用程序部署到本地 linux 服务器

linux - Git 克隆在公钥上失败。有什么我想念的吗?

svn - github中的私有(private)文件夹

c# - 使用 GetWorkspace 连接到 Team Foundation Server 工作区

android - 如何使用 Service 和 ASyncTask 轮询服务器并更新 UI

android - 如何在对话框中自定义android中CheckMark颜色的颜色。 : android

visual-studio - Visual Studio - 如何始终显示挂起的更改

git - 我可以将 git blame 配置为始终忽略某些提交吗?想要一劳永逸地修复 git blame