本篇主题: 在 flutter 插件中引入 aar
本篇只包含 android 部分, iOS 的 framework 直接在 podspec 中引入就可以了,所以本篇略过不表
做过安卓开发的朋友可能知道, aar 文件如果作为本地文件直接引入 library, 然后 app 引用 library 是会报找不到aar的, 需要在 app 中使用 flatDir 进行引入, 这种方式的缺点在于, 你必须在每个项目去配置, 很有侵入性
熟悉 flutter 插件开发的朋友都知道,在我们开发 flutter 插件时, 插件是以 library module 的形式引入到项目中的
这时如果 sdk 方对于安卓只提供了 aar, 在这种大前提下,我们有如下几种方法:
- 使用 maven 公开服, 比如 jcenter, 或其他的 maven 仓库
- 使用本地 maven 仓库
本篇就使用这种本地 maven 仓库的方案来做
完成本地 maven 的步骤
创建插件项目
第一步肯定是创建一个 flutter 插件
flutter create -t plugin example_for_flutter_plugin_local_maven
置入 aar
我这里用蒲公英的的 aar 举例:
下载下来放在 android 目录下
https://github.com/Pgyer/mvn_repo_pgyer/blob/master/com/pgyersdk/sdk/3.0.9/sdk-3.0.9.aar
在插件的 android 目录下创建一个文件夹,把 aar 放进去, 我这里取名为 aar
mkdir android/aar
cd android/aar
wget https://github.com/Pgyer/mvn_repo_pgyer/blob/master/com/pgyersdk/sdk/3.0.9/sdk-3.0.9.aar?raw=true #下载
mv sdk-3.0.9.aar?raw=true sdk.aar #改名
使用 aar 文件创建本地 maven 仓库
- 需要一个 maven 二进制程序, mac 的话是用
$ brew install maven
即可, 其他系统自行搜索 maven 安装 - 验证安装
$ mvn -v
- 使用命令行创建
mvn deploy:deploy-file -Dfile=sdk.aar -Durl="file://." # 这步会报错