java - 如何获取库的所有依赖项?

标签 java android maven gradle

我想在我的 Android 项目中使用 Google Firebase Messaging 库。但是我的笔记本电脑只能离线工作,无法访问互联网。我要下载FirebsaeMessaging库及其所有依赖项,然后将这些文件作为 aar library 文件添加到我的项目中。首先,我想获取该库的所有依赖项的列表。没有互联网我怎么能做到这一点?谢谢。

最佳答案

一般有两种方法:

  1. 您使用在线系统下载完整的依赖项,将它们复制到 libs 文件夹中,然后创建一个项目,您依赖于该 libs 中的每个 jar文件夹。

  2. 您创建一个基于 Maven 的项目,构建该项目以便将每个依赖项复制到您的本地存储库并将 .m2(本地存储库)复制到您的离线计算机。如果您想要一个基于 gradle 的项目,@lance-java 已经发布了一个解决方案。

第一种方法的优点是您拥有一个独立的项目,不依赖于互联网。一切都在您的项目中并且是明确的。您必须像过去一样将依赖项检入源代码控制系统。

第二种方法很好,如果您在该项目的团队中工作。依赖项的导出与项目设置本身无关。每个程序员都会找到一个“正常”的项目设置和依赖管理。

如果猜测,您想要选择 1. 方式。如果是这样,我建议使用 ivy下载完整的依赖树。将 ivy-X.Y.Z.jar 放入您的项目中,旁边是一个列出所有依赖项的脚本 - 某种可怜的依赖项管理。

例子:

$ java -jar ivy-2.5.0.jar -dependency com.google.firebase firebase-admin 6.8.1 -retrieve "libs/[artifact](-[classifier]).[ext]"    

此命令将下载 com.google.firebase:firebase-admin:6.8.1 的完整依赖关系树,并将没有版本的 jar 存储到 libs 文件夹中。

关于java - 如何获取库的所有依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59518171/

相关文章:

java - 将日期字符串数组上传到 oracle

android - 调用 requestLocationUpdates 后,位置服务是否至少发送了一个位置?

android - 覆盖 Context 的 `getResources()` 以在 xml 中工作

maven - intellij 将 maven-resources-plugin 设置的属性标记为 "cannot resolve symbol"

java - 如何在套接字io中使用用户名获取用户ID

java - libGDX html :draftCompileGwt Compilation Error

google-app-engine - GAE/JDO - 未找到 jdopersistencemanagerfactory

java - 将 Eclipse Maven 项目转换为 Eclipse Maven 动态 Web 项目

java - 使用一对一关系时如何修复 "A different object with the same identifier value was already associated with the session"错误

android - NFC 标签重定向以从 Play 商店下载应用程序