我需要使用软件包的最新源代码,而最新源尚未发布。
我应该怎么写pubspec.yaml
才能在github中得到一个包?
下面的代码不起作用。它不会下载该软件包,也无法将其导入到我的源代码中
dependencies:
flutter:
sdk: flutter
carousel_pro:
git:
url: https://github.com/jlouage/flutter-carousel-pro.git
答案 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/