Android项目依赖关系管理的现状

Android项目依赖关系管理的现状,android,android-maven-plugin,Android,Android Maven Plugin,我们正在标准化我们的Android开发基础设施,并试图将依赖关系管理纳入我们的Android库项目。我目前正在使用maven android插件。我们已经将Android工件上传到我们的工件库中。我们还有一个内部框架,其中包含一些库,我们可以将它们导入到我们的项目中,并且在大多数情况下,它运行良好 我们现在面临的问题是,很难设置包含资源文件的apklib依赖项。maven插件可以正确配置类路径,但是如果apklib有需要父Android项目引用的资源文件,Eclipse将无法找到它们,除非您签出

我们正在标准化我们的Android开发基础设施,并试图将依赖关系管理纳入我们的Android库项目。我目前正在使用maven android插件。我们已经将Android工件上传到我们的工件库中。我们还有一个内部框架,其中包含一些库,我们可以将它们导入到我们的项目中,并且在大多数情况下,它运行良好

我们现在面临的问题是,很难设置包含资源文件的apklib依赖项。maven插件可以正确配置类路径,但是如果apklib有需要父Android项目引用的资源文件,Eclipse将无法找到它们,除非您签出库项目并通过ADT将其链接到父项目

在阅读了m2e android关于这个问题的讨论之后,我不相信maven是正确的选择,直到ADT正确地支持闭源apk库

我想知道你是如何处理这些依赖你的Android项目的。除了使用Maven,还有什么策略

以下是我们迄今为止所做的尝试,以供参考

  • 没有依赖关系管理。所有必需的jar都存储在lib文件夹中,并推送到源代码管理repo。库项目被设置为子文件夹,并被推送到每个项目的源代码管理repo中。Eclipse项目设置也被推送。使用标准ADT Ant脚本构建的项目
  • 将Jar依赖项转换为libs文件夹,并将库依赖项转换为git子模块。使用标准ADT Ant脚本构建的项目
  • 使用maven进行依赖关系管理,包括使用apklib打包的库项目。apklibs中的资源文件出现问题

  • 您可以在本视频中了解Facebook Android开发人员如何解决他们的依赖性问题:

    他们用巴克来做这件事。这鼓励创建由代码和资源组成的小型可重用模块


    这对你来说可能不是最好的解决方案,但对其他人来说可能不是。

    随着Android Studio和Gradle的出现,我们不再面临项目依赖性的问题;Android或其他


    Gradle支持jar或apklib格式的Maven依赖项。流行库已导出为apklib(aar)格式,并通过Maven提供。

    您可以将库项目和应用程序项目分组为多模块项目,请参见示例。当将多模块项目导入Eclipse时,m2e android将设置库项目并自动链接到应用程序项目。酷,我会尝试。目前,我们决定使用ant宏从git克隆库项目。它不能解决依赖关系传递性之类的问题,但由于我们的依赖关系图在Android上非常肤浅,所以在大多数情况下都不会成为问题。我们把它做得有点像maven/ivy/gradle。宏称为“依赖项”,我们有一个脚本,我们导入了一个名为“更新依赖项”的任务。在你的项目脚本中,你所要做的就是添加。我们一直在使用Maven。它像champ一样处理apklib类型依赖项(子模块或其他)。作为额外的奖励,(免费)社区版已经完全满足了我们的需要。