如何克隆修改osm_flutter插件仓库并在Flutter项目中正常使用?
问题原因
你遇到的错误是因为原仓库是多包结构:flutter_osm_plugin主包依赖了同级目录的flutter_osm_interface(用相对路径./flutter_osm_interface声明)。当你通过git远程引用这个包时,Pub只能拉取flutter_osm_plugin单个包的代码,无法获取同级的flutter_osm_interface目录,因此无法解析相对路径依赖。
必须克隆本地仓库,具体操作步骤
克隆自己的fork仓库到本地
打开终端,执行命令:git clone https://github.com/你的GitHub账号/osm_flutter.git替换
你的GitHub账号为你实际的账号名,把仓库克隆到本地合适的位置(比如和你的Flutter项目同级目录)。修改项目的pubspec.yaml依赖配置
把原来的git依赖替换为本地路径依赖,指向你克隆仓库里的flutter_osm_plugin目录:dependencies: hive: ^2.2.3 hive_flutter: ^1.1.0 flutter: sdk: flutter flutter_osm_plugin: path: ../osm_flutter/flutter_osm_plugin # 路径根据你本地项目和克隆仓库的相对位置调整 #flutter_osm_plugin: ^0.42.0注意:路径要根据你实际的目录结构调整,比如如果克隆的仓库在你项目的子目录里,路径就要改成
./osm_flutter/flutter_osm_plugin。执行flutter pub get
回到你的Flutter项目目录,重新执行:flutter pub get此时Pub会识别本地多包结构的依赖,正常拉取所有需要的代码。
修改代码并同步到远程fork仓库
直接在本地克隆的osm_flutter仓库里修改代码,完成后执行git提交和push:git add . git commit -m "描述你的修改内容" git push origin main # 或者对应分支名你的本地Flutter项目会自动使用修改后的本地代码,测试没问题后即可维护自己的fork仓库。
你之前的操作错误点
直接通过git远程引用主包,没有考虑到原项目的多包本地依赖结构,Pub无法从远程仓库解析相对路径的依赖项,必须通过本地路径依赖才能识别整个项目的模块关系。
内容的提问来源于stack exchange,提问作者Pannam

