Home 搭建Flutter的私有包管理仓库
Post
Cancel

搭建Flutter的私有包管理仓库

pub_server

官方有开源一个私有仓库项目: pub_server。它可以帮助我们在本地起一个私有仓库服务。具体的命令可以查看该项目说明。

但为了能够一劳永逸,可以把它做成Docker镜像。Github上已经有人实现了这种方式:simple_pub_server


simple_pub_server

该项目将pub_server做成了镜像,提供了一份docker-compose文件。

完整的流程如下:

第一步,部署服务。将docker-compose拷贝到服务器某目录下:

1
docker-compose up

第二步,发布flutter package/plugin。发布命令:

1
flutter packages pub publish --server http://${your pub_server domain}

pub publish命令需要google认证。所以,尽管是发布到私人仓库,仍然需要走google账号认证。参照正常的发布流程:如何发布一个Flutter插件

第三步,从私有仓库引入包或插件。

Flutterpubspec.yaml支持多种包引入方式。如最简单的pub.dartlang.org、本地包引入、Git项目引入、私人仓库引入,具体可以查看官方文档: Pub Dependencies

这里,使用私人仓库引入的方式:

1
2
3
4
5
test:
  hosted:
    name: test # name of your package/plugin
    url: http://${your pub_server domain}
  version: ^0.0.1

有个注意点:url地址最后不能以/结尾。像这种写法:http://${your pub_server domain}/, 会导致flutter packages get获取不到相应的包。


结束

一切顺利的话,就能够正常的从私有仓库publish/get了。唯一的缺点是没有展示页面,无法直观的看到已有的项目以及版本。

This post is licensed under CC BY 4.0 by the author.