通常我们在pubspec.yaml配置需要引用的第三方库,例如:
dependencies:
cupertino_icons: ^1.0.2
这会直接到pub.dev查找下载cupertino_icons库,指定版本:1.0.2。
pub.dev是Dart官方的仓库地址,当然我们也可以将自已写的package发布到该仓库中供别人使用。
当然,除了引用发布到它上边的库外,还可以引用发布以下几种库:
# 通过私有仓库方式引用
custom_package:
hosted:
name: custom_package // package名称
url: http://localhost:8080 // 私有pub仓库地址
version: ^0.0.1 // package版本号
# 通过git获取
custom_package:
git:
url: https://gitee.com/wenjinzhu/flutter_package.git // gitee仓库地址
path: custom_package/0.0.1 // package存放路径,相对于根目录
ref: master // 分支
# 直接引用未发布项目
custom_package:
path: ../custom_package/ 相对路径(这里引用项目与package项目平级)
flutter create --template=package custom_package // custom_package为package名称,自定义


flutter packages pub publish --dry-run
flutter packages pub publish
假如发布到pub.dev是不需要进行额外配置,直接执行flutter packages pub publish即可。

但执行时,会有以下提示:要求登录谷歌账号并进行验证才能正常publish。将提示中的url复制到浏览器进行操作(这里需要翻墙,你懂滴)
这里只是简单的介绍如何本地运行模拟服务
// 拉取源码
git clone https://github.com/dart-archive/pub_server.git
...
cd pub_server/
...
pub get
...
dart example/example.dart -d /tmp/package-db
// 运行服务
Listening on http://localhost:8080
To make the pub client use this repository configure your shell via:
// 当你看到这里就说明服务正常运行了
$ export PUB_HOSTED_URL=http://localhost:8080
在pubspec.yaml中通过publish_to属性配置pub私有仓库地址
name: cusotm_package // package名称
description: test custom package publish to private pub // 描述
version: 1.0.0 // 发布的版本号
author: king // 作者
homepage: https://gitee.com/wenjinzhu/flutter_package.git // 主页
publish_to: http://localhost:8080 // 这里配置的就是pub私有仓库地址,发布到pub.dev是不需要配置的
dependencies:
test_package: // package名
hosted:
name: test_package // package名
url: http://localhost:8080 // 仓库地址
version: ^0.0.1 // package版本
将我们打包好的package直接放到git上边即可