likes
comments
collection
share

Flutter混编-脚本自动化将Flutter打包成aar上传至私人maven仓库的一次完整流程

作者站长头像
站长
· 阅读数 41

前言

在原生与Flutter混编工程中, 安卓集成Flutter Module, 官方提供的方案一共有两种

第一种为: 依赖模块源码模式 这种方式方便开发, 调试便捷

第二种为:依赖aar方式 这种方式是不需要配置flutter环境也能运行原生项目

两种方式的集成流程官方文档都有详细的文档, 这里就不过多讨论。

在依赖aar方式中, 打包出来的aar文件直接放到原生项目中不是很优雅, 而且不好控制版本, 所以将其上传至maven仓库很好解决问题。

一. maven环境安装

既然要上传至maven仓库, 当然是要先安装maven环境先啦(废话!)

1.下载

maven下载地址: maven.apache.org/download.cg…

Flutter混编-脚本自动化将Flutter打包成aar上传至私人maven仓库的一次完整流程

我是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混编-脚本自动化将Flutter打包成aar上传至私人maven仓库的一次完整流程

二. 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标签下添加账号密码

Flutter混编-脚本自动化将Flutter打包成aar上传至私人maven仓库的一次完整流程

然后在脚本中, 最后执行上传maven仓库命令那里

Flutter混编-脚本自动化将Flutter打包成aar上传至私人maven仓库的一次完整流程

加上 DrepositoryId="deployment-$buildType", 使用配置的账户密码

大功告成!

Flutter混编-脚本自动化将Flutter打包成aar上传至私人maven仓库的一次完整流程

tips: 我在mvn -s中引用的配置文件是我将maven的setting文件复制出来, 放在项目中了, 这样做的好处是: 多人开发时, 其他人不用在去系统的setting文件中配置, 这样对系统的 mvn 配置没有侵入性

转载自:https://juejin.cn/post/7081933981842669599
评论
请登录