我正在使用ActionBarSherlock作为库。我们没有将ABS包含在我们的存储库中,因此参与our project的每个人都必须单独下载和安装它。 ActioBarSherlock是一个Android库项目,我通过在同一个Eclipse的工作区中打开它和我的项目来运行它(它们都没有复制到工作区,它们都存在于另一个文件夹中)并将它添加到我的project.properties
中按照此:
的 Referencing a library project
该引用路径是相对的,因为每个人可能在不同的文件夹中都有ABS,我们在Eclipse的project.properties
文件中也有不同的路径android.library.reference.1
。 有没有办法在本地覆盖该库路径,以便我们可以在我们的仓库中使用project.properties
但Eclipse会在本地使用其他路径吗?目前我必须在每次运行后手动修复该路径因为路径不同而从我们的回购中拉出来。
存在other *.properties files但Eclipse忽略它们:
local.properties
构建系统的可自定义计算机特定属性。如果使用Ant构建项目,则其中包含SDK安装的路径。由于文件的内容特定于SDK的本地安装,因此不应在源修订控制系统中维护local.properties。 如果您使用Eclipse,则不使用此文件。
ant.properties
构建系统的可自定义属性。您可以编辑此文件以覆盖Ant使用的默认构建设置,并提供密钥库和密钥别名的位置,以便构建工具在构建发布模式时可以对应用程序进行签名。此文件是项目的组成部分,因此请在源修订控制系统中进行维护。 如果您使用Eclipse,则不使用此文件。
答案 0 :(得分:0)
让每个人都把它放在projectroot/libs
中。 ADT的较新版本(ADT 17及以上版本,IIRC版本)将自动将其拾取并编译到您的应用程序中。请注意,该文件夹为libs
,s
,而不是lib
。使用/lib
将无效。
答案 1 :(得分:0)
选项:
project.properties :您可以在每个用户主文件夹libs
中创建一个链接,并让project.properties
中的路径引用{{1} }
使用公共库: 创建一个名为“common”的库项目。在设置中,让它导出jar。在Android应用程序中,导入jar。
我个人认为使用maven进行配置是最好的,但第二种选择是最快的。
答案 2 :(得分:0)
如果忽略repo中的project.properties怎么办?这样每个用户都可以保留自己的,你不需要一直覆盖它。我不认为你可以在本地覆盖它。
简化操作的另一个选项是,您可以将项目导出为JAR文件,而不是将其作为库项目引用。如果您不需要修改ABS代码,可以右键单击该项目 - > java - > jar文件和所有开发人员可以为了简单起见而将它保存在同一个地方。
答案 3 :(得分:0)
编辑:我们的项目不再需要这个问题,因为我们从Eclipse迁移到Android Studio和Gradle构建系统。正如@bgs建议的那样,带Maven的Eclipse也应该有效。
我们以前的方法:
仍在寻找更好的选择,但到目前为止,我们最终将project.properties
保留在我们的回购中。如果在拉动时没有对其进行任何更改,则project.properties
不会被覆盖。我们还在README中建议用户添加此
[alias]
commit = commit -X project.properties
到他们的.hg/hgrc
配置文件,以防止意外提交该文件的更改。
此方法至少有一个缺点:合并时,即使提交与abort: cannot partially commit a merge (do not specify files or patterns)
的合并,也可能会出现类似hg commit -m 'merge'
的错误。如果发生这种情况,请暂时禁用该别名。