在多个客户端项目中使用多个android库项目的不同修订版(在Eclipse中)

时间:2011-06-29 22:06:35

标签: android eclipse android-library android-sdk-tools

首先,我对google docs中的库项目以及此article中的android构建系统的详细说明了解了大部分知识。

设置

在我的Eclipse工作区中,我有几个导入android库的客户端项目。每个客户端都导入一组不同的库,还有一些库互相导入。

每个客户端都有自己的subversion存储库,所有库都在一个单独的subversion存储库中。

所有构建并执行良好。

问题

  1. 客户端项目和库不是同步进化的。某些客户端项目需要较旧的库修订版。必须在Eclipse中创建大量项目。必须从库存储库的不同版本多次创建一些库项目。
  2. 我需要拥有大量的库,因为单个库项目的所有资源都会在客户端项目中结束,即使客户端实际上没有使用它们中的任何一个。我在这儿吗?
  3. 我将同一个库的不同修订版本检入工作区。使用Eclipse时,不可能导入多个库项目,因为eclipse项目在.project文件中具有相同的名称(Eclipse在尝试导入第二个项目时会抱怨它)
  4. 的Eclipse ??
  5. 修改

    Jarek Potiuk的答案有效。但它只是解决了第3点中描述的问题。我仍然需要在Eclipse中单独创建每个库项目。

    是否有一个解决方案,我不需要在Eclipse中为每个导入的库项目创建项目?有人和蚂蚁一起工作解决方案吗?

1 个答案:

答案 0 :(得分:2)

让我解释一下我们如何处理它。我们正在使用mercurial subrepo,但在你的情况下使用svn:externals应该完全相同。

0)先决条件:确保将.project和.classpath文件提交到您的项目的repo ....

1)在主项目中,我们有一个“subrepo”目录,我们将所有外部库(作为子目录)保存在那里。在mercurial中,它是使用subrepo完成的,在svn中你应该能够使用svn:externals配置链接到特定版本的库(SVN标记或分支URL):http://svnbook.red-bean.com/en/1.0/ch07s03.html

2)净效果是当你签出主项目时,你会自动检查subrepo目录中的依赖库。到目前为止一切都很好。

3)现在在eclipse中你得到主目录失败,因为它没有链接的库.....你在这种情况下做什么 - “添加新Java项目”,输入UNIQUE项目名称(例如libraryprojectname-mainprojectname。取消选中“使用默认位置”并浏览到subrepo的库.Eclipse将从现有的.project中为你配置项目。将此项目添加为Android中的依赖项目,也可能在eclipse中添加...注意!UNIQUE名称不会改变.project名称,但它会让eclipse检出你的多个库项目......

4)现在,当您的项目编译时,将所有内容(包括.project和.classpath文件)提交到repo ...

5)每当有人签出项目时,库将以适当的版本签出,唯一需要的额外步骤是重复第3点) - 为subrepo添加新的Java Project并为项目提供一个唯一的名称...这是关于它(Eclipse将无论如何在内部引用subrepo / library目录而不是唯一名称)