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

Ang*_*raX 19 android android-maven-plugin

我们正在为Android开发标准化我们的基础架构,并且我们正在尝试将依赖关系管理整合到我们的Android库项目中.我目前的轨道是使用带有m2e-android的maven android插件.我们已使用Android SDK Deployer将Android工件上传到Artifactory存储库.我们还有一个内部框架,我们可以将几个库导入到我们的项目中,并且大多数情况下它都可以正常工作.

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

在阅读问题https://github.com/rgladwell/m2e-android/issues/8上的m2e-android讨论后,https://stackoverflow.com/questions/6269816/creating-closed-source-android-libraries#answer- 6270768APKLIB没有安装在Maven Repo中,我不相信maven是直到ADT正确支持闭源apk库的方式.

我想知道你是如何在Android项目上处理这些依赖项的.除了使用Maven之外还有哪些策略?

作为参考,这是我们到目前为止所尝试的内容.

  1. 没有依赖管理.所有必需的jar都存储在lib文件夹中并推送到源控件仓库.库项目被设置为子文件夹并被推送到它们所使用的每个项目的源代码控制仓库.还推送了Eclipse项目设置.使用标准ADT Ant脚本构建的项目.
  2. 将依赖关系作为git子模块存入libs文件夹和库依赖关系.使用标准ADT Ant脚本构建的项目.
  3. 使用maven进行依赖管理,包括使用apklib打包的库项目.apklibs中的资源文件问题.

Jua*_*vas 8

您可以深入了解Facebook Android开发人员如何解决此视频中的依赖项问题:Facebook如何为Android构建Facebook.

他们使用巴克.Buck是Android的构建系统,它鼓励创建由代码和资源组成的小型可重用模块.巴克在github

这对您来说可能不是最佳解决方案,但可能对其他人而言.


Ang*_*raX 4

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

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