【发布时间】:2011-11-20 12:43:58
【问题描述】:
我需要一些帮助来找出组织我的 Android 项目的最佳方式(或最佳实践)。为简单起见,假设我的 Android Eclipse 工作区是C:\Android\Projects\。在该文件夹中,我喜欢将应用程序与库分开,我还有另外两个文件夹,C:\Android\Projects\Applications 和 C:\Android\Projects\Components。
对于一个项目,我从 GitHub 克隆了一个库到 Components 文件夹中,假设为 C:\Android\Projects\Componentes\SampleLib(在该文件夹中有两个文件夹 TheLib 和 TheLibExample)。我的应用程序被创建为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 文件夹中。在以前的文件夹组织中,这将不需要,因为我引用的是原始克隆存储库而不是副本。
那我该怎么办?我应该使用选项一并让任何分叉我的项目的人按照他们认为合适的方式处理库依赖项,还是我应该使用第二个选项并通过在原始文件夹从其中提取更改时保持两个文件夹同步来给每个人更多的工作仓库?
【问题讨论】:
-
你是如何为 bitbucket 解决这个问题的? bitbucket 没有在项目中添加我的库
标签: android git version-control github project-organization