maven和aar的区别

一、maven和aar的区别

1、maven介绍

maven是远程依赖,仓库里面包含了pom文件以及aar文件等,pom文件里面会进行依赖的相关配置,比如groupid、版本号那些。如果项目是以远程maven仓库的方式去依赖,那么会从远程仓库下载依赖资源到本地,然后项目再去使用这些依赖;

2、aar文件介绍

aar文件是以本地方式去集成,一般会直接放到项目工程的lib目录下,项目能直接使用这个依赖里面的api等内容,不需要再从远程拉取依赖。

二、案例分析

案例一

假如A项目依赖了百度地图SDK,且A项目还集成了B SDK,其中B SDK中通过远程maven方式集成了百度地图SDK,这个时候打包没问题。这里主要是因为采取远程maven仓库的方式去集成,当打包成SDK(aar文件)时,并不会把远程maven仓库方式集成的百度地图SDK打包到SDK的产物中,所以程序能正常编译起来。

案例二

假如A项目依赖了百度地图SDK,且A项目还集成了B SDK,其中B SDK中集成了百度地图SDK,这个时候A项目就会编译失败,因为存在了两份百度地图SDK。

案例二的解决方案

1、先确认集成的百度地图SDK是否是相同版本的SDK,如果是的话,可以让其中一方采取compileOnly的方式去依赖百度地图SDK;

2、如果不是相同的百度地图SDK,那么就要评估如果采取了其中一方的百度地图SDK,这个SDK对A、B两个项目的影响面,综合评估才好决定用哪个或者直接用官网最新的百度地图SDK。

针对第2点,评估的方向有:

  • (1)、包体积

如果采取了包体积小的那个,那么对另一方的需求能否都满足;

  • (2)、SDK版本

如果采取了两方之中最新的SDK版本,那么需要考虑这个对另外一方会不会存在api方法找不到、调用失败的情况;

  • (3)、SDK功能

如果一方是轻量级的百度地图SDK,只包含了基础的定位功能,另一方的SDK除了该功能外还有其他功能,那么建议用功能多的百度地图SDK。

暂无评论

发送评论 编辑评论

|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇