8

我正在使用ActionBarSherlock作为库。我们尚未将 ABS 包含到我们的存储库中,因此参与我们项目的每个人都必须单独下载并安装它。ActioBarSherlock 是一个 Android 库项目,我通过在同一个 Eclipse 的工作区中打开它和我的项目来运行它(它们都没有被复制到工作区,它们都存在于另一个文件夹中)并按照以下步骤将其添加到我project.properties中: 图书馆项目

project.properties该参考路径是相对的,由于每个人可能在不同的文件夹中都有 ABS,我们在 Eclipse 的文件中也有不同的路径,如android.library.reference.1. 有什么方法可以在本地覆盖该库路径,以便我们可以project.properties在我们的仓库中使用,但 Eclipse 将在本地使用其他路径?目前,由于路径不同,每次从我们的存储库中提取时,我都必须手动修复该路径。

存在其他 *.properties 文件,但 Eclipse 会忽略它们:

本地属性

构建系统的可定制的计算机特定属性。如果您使用 Ant 构建项目,则它包含 SDK 安装的路径。由于该文件的内容特定于 SDK 的本地安装,因此不应在源版本控制系统中维护 local.properties。如果您使用 Eclipse,则不使用此文件。

蚂蚁属性

构建系统的可定制属性。您可以编辑此文件以覆盖 Ant 使用的默认构建设置,还可以提供您的密钥库和密钥别名的位置,以便构建工具可以在以发布模式构建时签署您的应用程序。该文件是项目的组成部分,因此请将其保存在源代码修订控制系统中。如果您使用 Eclipse,则不使用此文件。

4

4 回答 4

0

选项:

  • project.properties:您可以在每个用户的主文件夹中创建一个链接,libs并在project.properties参考~/libs

  • 使用公共库:创建一个名为“common”的库项目。在设置中,让它导出 jar。在您的 Android 应用程序中,导入 jar。

我个人认为使用 maven 配置是最好的,但第二个选项是最快的。

于 2012-10-23T17:11:17.020 回答
0

如果您忽略 repo 中的 project.properties 怎么办?这样每个用户都可以保留自己的,而您不需要一直覆盖它。我不认为你可以在本地覆盖它。

简化事情的另一个选择是您可以将项目导出为 JAR 文件,而不是将其作为库项目引用。如果您不需要修改 ABS 代码,您可以右键单击项目 -> java -> jar 文件,所有开发人员都可以将其保存在同一个地方,以简单起见。

于 2012-10-26T09:39:58.477 回答
0

让每个人把它放进去projectroot/libs。较新的(ADT 17 及更高版本,IIRC)版本的 ADT 将自动选择它并将其编译到您的应用程序中。请注意,该文件夹是libs, 带有s, 而不是lib。使用/lib将不起作用。

于 2012-09-18T19:00:46.217 回答
0

编辑:我们的项目不再需要这个问题,因为我们从 Eclipse 迁移到 Android Studio 和 Gradle 构建系统。正如@bgs 所建议的,带有 Maven 的 Eclipse 也应该可以工作。

我们之前的做法:

仍在寻找更好的替代方案,但到目前为止,我们最终保留project.properties了我们的回购协议。project.properties如果拉动时没有对其进行更改,则不会被覆盖。我们还在我们的自述文件中建议用户添加这个

[alias]
commit = commit -X project.properties

到他们的.hg/hgrc配置文件,以防止意外提交该文件的更改。

这种方法至少有一个缺点:在合并时,abort: cannot partially commit a merge (do not specify files or patterns)即使您使用hg commit -m 'merge'. 如果发生这种情况,请暂时禁用该别名。

于 2012-11-06T13:06:36.853 回答