无需发布至pub.dev,如何将Flutter插件作为库供其他Flutter应用依赖?
无需发布至pub.dev的Flutter插件共享方案
以下几种方案可以让你把依赖jar的蓝牙插件直接共享给其他开发者,无需发布到pub.dev:
1. 本地路径依赖(适合近距离/内部团队共享)
这是最简单的直接共享方式:
- 把你的整个插件文件夹(包含
lib、android(含jar文件)、pubspec.yaml等所有必要文件)共享给目标开发者 - 让开发者在他们的Flutter项目的
pubspec.yaml中添加依赖:
替换成插件文件夹相对于项目根目录的实际路径即可dependencies: your_bluetooth_plugin: path: ../relative/path/to/your_bluetooth_plugin - 提醒开发者运行
flutter pub get,再执行flutter clean && flutter run确保构建正常
关键注意点:确保插件的android/build.gradle中已正确配置jar依赖,比如:
dependencies { implementation files('libs/your_bluetooth_sdk.jar') }
jar文件要放在插件的android/libs目录下,并且随插件文件夹一起共享。
2. Git仓库依赖(适合远程团队/跨地域共享)
将插件托管到私有或公开Git仓库(无需提交到pub.dev),让开发者通过Git引用:
- 把插件的所有文件(包括jar)推送到Git仓库(比如公司自建Git服务器、GitLab私有库等)
- 开发者在项目的
pubspec.yaml中添加Git依赖:dependencies: your_bluetooth_plugin: git: url: git@your-git-host.com:your-team/your_bluetooth_plugin.git ref: main # 可指定分支、tag或commit hash - 如果是私有仓库,需要开发者配置好Git权限(比如SSH密钥)以拉取代码
关键注意点:务必把android/libs下的jar文件提交到Git仓库,不要加入.gitignore,否则开发者拉取后会缺失依赖导致构建失败。
3. 离线压缩包依赖(适合离线场景共享)
把插件打包成压缩包(.zip/.tar.gz)共享,开发者解压后使用本地路径依赖:
- 打包时包含所有必要文件:
lib、android(含jar)、pubspec.yaml、README.md等,不要遗漏任何依赖文件 - 把压缩包发送给开发者,让他们解压到本地任意路径
- 开发者按照「本地路径依赖」的方式,在
pubspec.yaml中添加路径引用即可
通用注意事项
- 确保插件的
pubspec.yaml中正确声明了Flutter SDK版本约束、平台支持等信息,避免开发者项目出现版本冲突 - 若插件有iOS相关实现,同步处理iOS端依赖配置即可(你提到依赖jar,主要关注Android端)
- 建议给开发者提供简单的使用文档,说明插件初始化、蓝牙连接API的调用方式,以及常见问题排查方法
内容的提问来源于stack exchange,提问作者Santosh Korada
相关产品推荐
相关产品推荐

