Flutter混编-脚本自动化将Flutter打包成aar上传至私人maven仓库的一次完整流程
前言
在原生与Flutter混编工程中, 安卓集成Flutter Module, 官方提供的方案一共有两种
第一种为: 依赖模块源码模式 这种方式方便开发, 调试便捷
第二种为:依赖aar方式 这种方式是不需要配置flutter环境也能运行原生项目
两种方式的集成流程官方文档都有详细的文档, 这里就不过多讨论。
在依赖aar方式中, 打包出来的aar文件直接放到原生项目中不是很优雅, 而且不好控制版本, 所以将其上传至maven仓库很好解决问题。
一. maven环境安装
既然要上传至maven仓库, 当然是要先安装maven环境先啦(废话!)
1.下载
maven下载地址: maven.apache.org/download.cg…
我是Mac, 下载的第一个, window环境下载第二个
解压至指定文件夹, 记住这个路径, 我是放在/usr/local/maven/apache-maven-3.8.4
2.配置环境变量
打开终端, 输入命令
open ~/.bash_profile
添加环境变量, 也就是刚才解压的路径
export M3_HOME=/usr/local/maven/apache-maven-3.8.4
export PATH=$M3_HOME/bin
保存并关闭.bash_profile, 接着在终端输入命令source ~/.bash_profile
使其配置的环境变量生效
在终端输入mvn -v
, 检查是否配置成功, 成功应该会输入以下信息
二. Flutter Module打包aar并上传maven脚本
Android打包Flutter模块上传到maven仓库的最佳实现
下面是使用时遇到的一些问题
-
运行packageHelper.sh文件时出现
Permission denied
提示这是因为packageHelper.sh文件没有运行权限, 输入命令
chmod 777 packageHelper.sh
更改权限, 再次运行即可 -
出现这种错误
Connect to localhost: XXX faild: Connection refused(Connection refused) -> [Help 1]
或者status: 401 Unauthorized -> [Help 1]
出现这种连接被拒绝的错误, 原因是没有权限, 由于私人maven仓库需要账号密码, 需要maven的setting文件里配置
maven的setting文件路径为
apache-maven-3.8.4/conf/settings.xml
在service标签下添加账号密码
然后在脚本中, 最后执行上传maven仓库命令那里
加上 DrepositoryId="deployment-$buildType"
, 使用配置的账户密码
大功告成!
tips: 我在mvn -s中引用的配置文件是我将maven的setting文件复制出来, 放在项目中了, 这样做的好处是: 多人开发时, 其他人不用在去系统的setting文件中配置, 这样对系统的 mvn 配置没有侵入性
转载自:https://juejin.cn/post/7081933981842669599