如何从library依赖库的aar文件中去除不用的jar包
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从library依赖库的aar文件中去除不用的jar包相关的知识,希望对你有一定的参考价值。
在android Studio中依次点击【File】——【New Module】,打开窗体【Create New Module】。在窗体【Create New Module】中点击【Import .JAR/.AAR Package】选项,然后点击按钮【Next】,进入包文件选择界面,通过文件选择对话框选择一个.jar包或者.aar包,最后点击按钮【Finish】,即完成包文件的导入。导入的结果如图所示。
3
那么导入一个包文件后如果我们想把它给移除掉,那该怎么做呢?选择一个包文件,右键,发现右键命令中没有移除包的功能。此时,我们可以选择右键菜单中的选项【Open Module Settings】,打开窗体【Project Structure】,选择要移除的包,然后点击窗体左上角的“减号”按钮,然后点击按钮【OK】即可完成包的移除。 参考技术A
IDEA?我记得是有个,点开就有库的维护
在android中创建一个具有依赖项的库
【中文标题】在android中创建一个具有依赖项的库【英文标题】:Create a library with dependencies in android 【发布时间】:2016-09-01 04:00:36 【问题描述】:我创建了一个库“LibA”,它依赖于许多 3rd 方库,如 RecyclerView、EventBus 等。当我尝试将它作为 aar 包含在另一个项目中时,Library 被成功包含,但依赖项没有出现在 aar 中。
Q1我怎样才能在LibA中包含依赖,这样当其他项目包含这个库时,它就不用担心我的库的内部依赖了。
Q2 gradle 是如何管理库的依赖的,是一次性下载所有的依赖,还是先检查主项目中已经存在的依赖?
Q3当有人包含来自 jcenter 的库时,是否会带来所有的依赖关系?
任何帮助将不胜感激。 :)
【问题讨论】:
【参考方案1】:aar 文件不包含嵌套(或transitive)依赖项,并且没有描述库使用的依赖项的 pom 文件。
这意味着,如果您使用 flatDir
存储库导入 aar 文件,您还必须在项目中指定依赖项。
Q1 如何在 LibA 中包含依赖项,这样当其他项目包含此库时,它不应该担心我的库的内部依赖项。
您应该使用 maven 存储库(您必须在私有或公共 maven 存储库中发布库),您不会遇到同样的问题。 在这种情况下,gradle 使用 pom 文件下载依赖项,该文件将包含依赖项列表。
Q2 gradle 是如何管理库的依赖的,是一次性下载所有的依赖,还是先检查主项目中已经存在的依赖?
Gradle 为您处理依赖项。它不会两次或多次添加相同的依赖项。
Q3 当有人包含来自 jcenter 的库时,是否会带来所有依赖项?
如前所述,在这种情况下,依赖项有一个描述所有嵌套依赖项的 pom 文件。 Gradle 会自动下载它。
【讨论】:
只是术语上的小修正——我认为“嵌套”应该是“传递” @EugenMartynov 是的。在这种情况下,嵌套是可传递的。【参考方案2】:Q1 如何在 LibA 中包含依赖项,这样当其他项目包含此库时,它不应该担心我的库的内部依赖项。
你应该使用一些依赖管理器。例如 Maven Central,它有 .pom
文件,它定义了应该使用的所有附加依赖项
Q2 gradle 是如何管理库的依赖的,是一次性下载所有的依赖,还是先检查主项目中已经存在的依赖?
gradle
下载所有必要的依赖项。它为依赖关系创建一个图表,尝试解决冲突并下载它们
Q3 当有人包含来自 jcenter 的库时,是否会带来所有依赖项?
如果 pom 文件中没有定义其他依赖项,则不会下载它们,只有库
【讨论】:
以上是关于如何从library依赖库的aar文件中去除不用的jar包的主要内容,如果未能解决你的问题,请参考以下文章