• Flutter(一) package的使用、开发与发布


    一、package的使用

    通常我们在pubspec.yaml配置需要引用的第三方库,例如:

    dependencies:
      cupertino_icons: ^1.0.2
    
    • 1
    • 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版本号
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    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                                               // 分支
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    3. 未发布的本地packages

      # 直接引用未发布项目
      custom_package:
        path: ../custom_package/    相对路径(这里引用项目与package项目平级)
    
    • 1
    • 2
    • 3

    二、package的开发流程

    1. 有两种方式创建package工程
    • 通过flutter命令行
    flutter create --template=package custom_package // custom_package为package名称,自定义
    
    • 1
    • 通过Android Studio
      new_flutter
      new_package
    1. 对于纯Dart包,在主lib/custom_package.dart文件内或lib目录中的文件中添加功能即可

    三、package的发布

    1. 在发布前,可以通过以下命令检测是否符合发布条件:
    flutter packages pub publish --dry-run
    
    • 1
    1. 确定没问题后,即可通过命令进行发布:
    flutter packages pub publish
    
    • 1
    1. 当然,在第一节提到了既然有多种引用方式,那发布也有多种方式

    1. 发布到pub.dev

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

    但执行时,会有以下提示:要求登录谷歌账号并进行验证才能正常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 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    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是不需要配置的
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    2.3 使用私有仓库的package

    dependencies:
      test_package: // package名
        hosted:
          name: test_package // package名
          url: http://localhost:8080 // 仓库地址
        version: ^0.0.1 // package版本
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    3. 发布到github/gitee/gitlab等

    将我们打包好的package直接放到git上边即可

  • 相关阅读:
    脚手架开发流程详解
    达梦DEM监控配置
    10.Linear Map transformation rules
    Migrations
    Java线程与锁-3
    Dart基础知识
    Word处理控件Aspose.Words功能演示:使用 Python 创建 MS Word 文档
    飞机机翼机身对接结构数值计算分析(ANSYS)
    【zookeeper】zk的ZAB原子广播协议
    HIT程序人生
  • 原文地址:https://blog.csdn.net/u012950099/article/details/126366500