4

我正在创建一个 phonegap 应用程序,它将由

Android 
Windows phone
iOS 
BlackBerry

到目前为止,主要开发发生在 Android 上,所有的 JS/HTML 都被复制到其他平台上。继续前进,我们必须为所有平台保留不同的存储库,以便于维护。

我能想到的显而易见的方法是为每个平台创建一个文件夹并在那里维护代码。但在这种情况下,如果我们修改任何 www (JS/HTML/CSS/Images) 内容,我们将需要手动复制到所有 repos。

有没有更好的方法来处理公共文件,或者将相同的文件复制到 4 个位置是唯一的出路?

4

2 回答 2

2

一种可能的解决方案是将您的代码拆分为以下文件夹/存储库:

  • common - 包含所有独立于平台的文件
  • android - 包含 android 特定文件
  • windows - 包含 windows 特定文件
  • ios - 包含 ios 特定文件
  • blackberry - 包含黑莓特定文件

然后创建一个小脚本,通过执行以下步骤,可以从这些文件中创建一个有效的项目:

  • 将文件夹的所有文件复制common到一个target文件夹
  • 将平台文件夹(例如android)的文件复制到该target文件夹​​(并覆盖现有文件)
  • 将目标文件夹打包到应用程序包并部署在设备上

因此,您必须仅在一个位置更改平台独立,并且仍然可以更改以添加特定于平台的代码(或覆盖特定平台的通用代码)。

于 2012-08-29T09:02:37.347 回答
2

You can use "Externals" for this. An external repository allows you to include a separate repository within a given repo - so within your device-specific repositories, you can include the common "JS/HTML" repository.

We have actually stepped away from this approach, because it does mean that every time someone commits a new version in the shared repo, that change immediately propagates to the other repositories. This can cause problems managing those dependencies - so we use a build script to check out a specific version from the shared repo as part of the build process.

于 2012-08-29T08:59:53.213 回答