繁体   English   中英

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

[英]how to get all dependencies of a library?

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

您可以使用我的依赖项导出插件将依赖项导出到使用 maven 目录约定的目录。 然后,您可以将该目录用作本地存储库以进行离线构建。

从 Gradle 6.1 版本开始,依赖缓存是可移植的,这意味着您可以将依赖缓存从一台机器复制到另一台机器,第二台机器应该能够离线构建。 也许这就是你想要的?

看到这个问题

一般有两种方法:

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

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

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

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

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

例子:

$ 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的完整依赖关系树,并将没有版本的 jars 存储到libs文件夹中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM