flutter 如何强制'pub get'从git获取最新信息?

k3fezbri  于 2023-01-06  发布在  Flutter
关注(0)|答案(5)|浏览(395)

我的pubspec.yaml文件中有一个git依赖项,当git repo中发生新的更改时,我如何强制它更新?

flutter pub get / pub get

它不会获得最新版本,因为它在.pub-cache/git/
有没有办法强制一个特定的依赖项从pubspec.yaml引用的git repo更新?

nbysray5

nbysray51#

pubspec.yaml中,你可以指定一个特定的git提交:

dependencies:
  http2:
    git:
      url: https://github.com/dart-lang/http2.git
      ref: c31df28c3cf076c9aacaed1d77f45b66bb2e01a6

或者如果在“ref”中只指定一个分支:

dependencies:
  http2:
    git:
      url: https://github.com/dart-lang/http2.git
      ref: master

您需要使用flutter packages upgrade强制更新

9rnv2umw

9rnv2umw2#

用途

flutter packages upgrade

了解最新情况。

flutter packages get

第一次只获取最新版本,并将解析的版本写入pubspec.lock。随后运行flutter packages get,然后尝试获取pubspec.lock中列出的版本,
flutter packages upgrade总是忽略pubspec.lock

r7knjye2

r7knjye23#

1.运行flutter clean,然后运行pub get(如果使用Flutter,则在pub之前添加flutter
1.确保更新软件包的版本号;如果版本和上次提交的版本相同,包就不会被更新。

  1. run pub upgrade
    1.如果它仍然不工作,你可以运行pub cache repair,它会重新安装你所有的软件包

编辑

1.确保dependency不在dev_dependencies部分(是的,那是今天!)

fbcarpbf

fbcarpbf4#

flutter packages upgrade会升级所有软件包的子版本,这可能不是你想要的(出于某种原因使用一些特定的软件包版本等)。pub cache repair通过重新安装所有软件包来完成这项工作,但也需要时间。使用refs有缺点比如错过了分支上最新的更新。
有2个其他选项/黑客来避免这一切:
1.更新ref值到最近提交的哈希值。运行flutter pub get然后重写你的分支名再次到你的ref值。
1.从flutter sdk的git文件夹中删除.pub-cache下的包,然后在你的项目上运行flutter pub get

xqnpmsa8

xqnpmsa85#

快速解决方案:只需更改repo名称并运行pub get:)

相关问题