如何从github添加一个包? (扑)

时间:2019-01-03 12:52:59

标签: github dart flutter package

我需要使用软件包的最新源代码,而最新源尚未发布。 我应该怎么写pubspec.yaml才能在github中得到一个包?

下面的代码不起作用。它不会下载该软件包,也无法将其导入到我的源代码中

dependencies:
  flutter:
    sdk: flutter

  carousel_pro:
    git:
      url: https://github.com/jlouage/flutter-carousel-pro.git

4 个答案:

答案 0 :(得分:15)

有时您生活在最前沿,需要使用尚未正式发布的软件包。也许您的软件包本身仍在开发中,并且正在使用同时正在开发的其他软件包。为了更轻松,您可以直接依赖存储在 Git 存储库中的包。

dependencies:
  kittens:
    git: https://github.com/munificent/kittens.git

这里的 git 表示这个包是使用 Git 找到的,后面的 URL 是可以用来克隆包的 Git URL。

即使包 repo 是私有的,如果您可以 connect to the repo using SSH,那么您可以使用 repo 的 SSH URL 依赖包:

dependencies:
  kittens:
    git: git@github.com:munificent/kittens.git

如果您想依赖于特定的提交、分支或标签,请添加一个 ref 参数:

dependencies:
  kittens:
    git:
      url: git@github.com:munificent/kittens.git
      ref: some-branch

引用可以是 Git 允许 identify a commit 的任何内容。

Git 依赖文件夹中的包

pub 工具假定包位于 Git 存储库的根目录中。如果不是这种情况,请使用路径参数指定位置。要在存储库中指定不同的位置,请使用 path 参数:例如:

dependencies:
  package1:
    git:
      url: git://github.com/flutter/packages.git
      path: packages/package1

路径相对于 Git 存储库的根目录。

有关详细信息,请参阅Package dependencies

答案 1 :(得分:3)

pubsec.yaml

的示例
dependencies:
  flutter:
    sdk: flutter

  carousel_pro:
    git:
      url: git://github.com/jlouage/flutter-carousel-pro.git
      ref: master

导入包的文件示例

import 'package:carousel_pro/src/carousel_pro_widgets.dart';
import 'package:flutter/material.dart';

class NewsCarousel extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return SizedBox(
      height: 200.0,
      child: WidgetCarousel(
        autoplay: false,
        pages: [],
      ),
    );
  }
}

注意:如果您的IDE找不到软件包,请尝试重新启动它。

答案 2 :(得分:0)

以上对我不起作用,但更改 url 以使用 https 确实:

dependencies:
  flutter:
    sdk: flutter

  flutter_tflite:
      git:
        url: https://github.com/qookit/flutter_tflite.git
        ref: main

“main”是我有兴趣使用的分支的名称。

我第一次运行“flutter pub get”时,它打开了一个浏览器窗口,询问我的 git 凭据。

答案 3 :(得分:0)

我将展示这个用例,您希望访问除 main/master 之外的分支中的特定文件夹:


  amplify_flutter:
    git:
      url: git://github.com/aws-amplify/amplify-flutter.git
      ref: null-safety-master
      path: packages/amplify_flutter/