83

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

下面的代码不起作用。它不下载包,我无法将它导入到我的源代码中

dependencies:
  flutter:
    sdk: flutter

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

4 回答 4

106

示例pubspec.yaml


与特定分支的依赖关系:

dependencies:
  flutter:
    sdk: flutter

  carousel_pro:
    git:
      url: git://github.com/jlouage/flutter-carousel-pro.git
      ref: main # branch name

与特定提交的依赖关系:

dependencies:
  flutter:
    sdk: flutter

  carousel_pro:
    git:
      url: git://github.com/jlouage/flutter-carousel-pro.git
      ref: ea12e41 # commit hash

导入包的文件示例:

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 没有看到该软件包,请尝试重新启动它。

于 2019-01-03T13:27:10.190 回答
25

上面的答案是正确的,但我添加了一些例子。

所以要使用 pub/package/lib 而不在 pub.dev 上发布:

1. 本地 - 保存在某个本地文件夹中

dependencies:
  library_name:
   path: /path/to/library_name

2. 托管 - 推送到 Github、Gitlab 等。

dependencies:
  library_name:
   git: https://github.com/username/library_name

或针对确切的分支

dependencies:
  library_name:
   git:
    url: https://github.com/username/library_name.git
    ref: dev    #branch name

或以精确提交为目标

dependencies:
  library_name:
   git:
    url: https://github.com/username/library_name.git
    ref: e234072340    #commit reference id

其中“ library_name ”必须与该 pub 的 pubspec.yaml 中声明的“ name ”相同。

于 2021-08-14T14:05:22.877 回答
13

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


  amplify_flutter:
    git:
      url: git://github.com/aws-amplify/amplify-flutter.git
      ref: null-safety-master
      path: packages/amplify_flutter/
于 2021-05-01T23:46:46.980 回答
1

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

dependencies:
  flutter:
    sdk: flutter

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

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

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

于 2021-01-05T05:13:21.570 回答