我需要使用一个包的最新源代码,但最新的源代码还没有发布。
我应该在pubspec.yaml
中写什么来从Github上获取一个包?
下面的代码无效。 它不会下载该包,我也无法将其导入我的源代码中。
dependencies:
flutter:
sdk: flutter
carousel_pro:
git:
url: https://github.com/jlouage/flutter-carousel-pro.git
pubspec.yaml
示例具有特定分支的依赖项:
dependencies:
flutter:
sdk: flutter
carousel_pro:
git:
url: https://github.com/jlouage/flutter-carousel-pro.git
ref: main # branch name
特定提交的依赖关系:
dependencies:
flutter:
sdk: flutter
carousel_pro:
git:
url: https://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看不到该包,请尝试重新启动它。
以上答案是正确的,但我添加了一些例子。
所以要在不发布到 pub.dev 的情况下使用 pub/package/lib :
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'必须与该软件包的pubspec.yaml中声明的'name'相同。
我将展示一个使用情况,其中您想要访问除主/主要分支之外的特定文件夹:
amplify_flutter:
git:
url: git://github.com/aws-amplify/amplify-flutter.git
ref: null-safety-master
path: packages/amplify_flutter/
packages/my_other_dependency
,你需要再复制和粘贴一遍所有内容,但是将依赖项名称(amplify_flutter:
)更改为my_other_dependency:
,然后更新path:
指向packages/my_other_dependency/
。 - Jeff Neetprivate_view:
git:
url: git@github.com:xxx/private_view.git
ref: 0.0.2 # tag
这里有一个例子
audio_service:
git:
url: https://github.com/kaushikgodhani/audio_service.git
ref: minor #branch name
path: audio_service #Folder Path on Github
路径
是有用的 - undefineddependencies:
flutter:
sdk: flutter
flutter_tflite:
git:
url: https://github.com/qookit/flutter_tflite.git
ref: main
"main"是我感兴趣使用的分支名称。
第一次运行“flutter pub get”时,它打开了一个浏览器窗口要求我输入git凭据。
添加备选列表:
从 Dart 2.15 开始,已支持认证私有存储库。
您可以使用标准 Dart CLI 工具将软件包发布到私有存储库。
Dart 允许您通过 dart pub token add
和 dart pub token list
添加和管理身份验证令牌。
一些私有存储库要求您使用第三方工具进行发布。
对于像 OnePub(https://onepub.dev)这样的存储库,您可以按以下方式发布:
dart pub global activate onepub
onepub login // onepub adds the onepub token to the dart pub token list
cd my_package
onepub pub private // onepub adds publish_to to your pubspec.yaml
dart pub publish
你可以手动向 pubspec.yaml 文件添加 publish_to 键,其格式如下:
name: my_package
publish_to: https://onepub.dev/api/jbbxpsdavu/
显然,URL 取决于您使用的私有存储库。
要在另一个项目中使用已发布的软件包,请使用以下命令:
cd <my app>
onepub pub add my_package
dependencies:
my_package:
hosted:
url: https://onepub.dev/api/jbbxpsdavu/
name: my_package
version: ^0.3.2
dart pub upgrade
使用此方法将升级您到最新版本的my_package,而使用git标签dart pub upgrade
则不会有任何作用。
此方法还使您的团队更容易添加私有依赖项,因为他们只需要知道包名称(即不需要知道url或git标签/引用来添加依赖项)。
以下是该过程的更详细说明。它特定于OnePub,但广泛原则适用于任何私有存储库,并已注意到异常情况。
https://onepub.dev/show/86646173-a968-4281-af39-3c37d349bcdc
声明:我与OnePub有关联。
如果你的软件包不是整个代码库,你可以使用路径。
geocoding:
git:
url: https://github.com/abdullahalamodi/flutter-geocoding.git
path: geocoding #refers to flutter-geocoding/geocoding
flutter packages get
吗? - Günter Zöchbauer.packages
文件列出了flutter-carousel-pro
吗? - Günter Zöchbauer