一、package的使用
通常我们在pubspec.yaml配置需要引用的第三方库,例如:
dependencies:
cupertino_icons: ^1.0.2
这会直接到pub.dev查找下载cupertino_icons库,指定版本:1.0.2。
pub.dev是Dart官方的仓库地址,当然我们也可以将自已写的package发布到该仓库中供别人使用。
当然,除了引用发布到它上边的库外,还可以引用发布以下几种库:
- 私有pub仓库的packages
- github/gitee/gitlab上边的packages
- 未发布的本地packages
1. 引用私有pub仓库的packages
# 通过私有仓库方式引用
custom_package:
hosted:
name: custom_package // package名称
url: http://localhost:8080 // 私有pub仓库地址
version: ^0.0.1 // package版本号
2. github/gitee/gitlab等的packages
# 通过git获取
custom_package:
git:
url: https://gitee.com/wenjinzhu/flutter_package.git // gitee仓库地址
path: custom_package/0.0.1 // package存放路径,相对于根目录
ref: master // 分支
3. 未发布的本地packages
# 直接引用未发布项目
custom_package:
path: ../custom_package/ 相对路径(这里引用项目与package项目平级)
二、package的开发流程
- 有两种方式创建package工程
- 通过flutter命令行
flutter create --template=package custom_package // custom_package为package名称,自定义
- 通过Android Studio
- 对于纯Dart包,在主lib/custom_package.dart文件内或lib目录中的文件中添加功能即可
三、package的发布
- 在发布前,可以通过以下命令检测是否符合发布条件:
flutter packages pub publish --dry-run
- 确定没问题后,即可通过命令进行发布:
flutter packages pub publish
- 当然,在第一节提到了既然有多种引用方式,那发布也有多种方式
1. 发布到pub.dev
假如发布到pub.dev是不需要进行额外配置,直接执行flutter packages pub publish
即可。
但执行时,会有以下提示:要求登录谷歌账号并进行验证才能正常publish。将提示中的url复制到浏览器进行操作(这里需要翻墙,你懂滴)
2. 发布到私有pub仓库(公司内部pub仓库)
2.1 部署pub server服务
这里只是简单的介绍如何本地运行模拟服务
// 拉取源码
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
2.2 将package发布到: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是不需要配置的
2.3 使用私有仓库的package
dependencies:
test_package: // package名
hosted:
name: test_package // package名
url: http://localhost:8080 // 仓库地址
version: ^0.0.1 // package版本
3. 发布到github/gitee/gitlab等
将我们打包好的package直接放到git上边即可