美文网首页Flutter
Flutter | 如何优雅的解决依赖版本冲突

Flutter | 如何优雅的解决依赖版本冲突

作者: 锐心凌志 | 来源:发表于2019-08-23 12:16 被阅读23次

    前言

    Google推出flutter这样一个新的高性能跨平台(Android,ios)快速开发框架之后,被业界许多开发者所关注。我在接触了flutter之后发现这个确实是一个好东西,好东西当然要和大家分享,对吧。

    今天要跟大家分享的是如何解决flutter中依赖版本冲突。

    这篇文章最初出现在:Iiro的博客中。

    为什么会存在版本依赖问题

    我们在开发flutter项目中,常常会依赖第三方库。flutter依赖项越多,就越有可能出现依赖版本冲突。

    Because new_trend depends on build_runner >=0.9.0 which requires SDK version >=2.0.0-dev.61 <3.0.0, version solving failed.
    pub get failed (1)
    复制代码
    

    它的pubspec.yaml文件应该看上去是这样的

    dev_dependencies:
      build_runner: ^0.9.0
    复制代码
    

    我们可以通过报错信息清楚地看到,这是由于build_runner和SDK版本冲突所导致的。

    解决方法

    当我们不清楚当前到底应该使用依赖的哪一个版本时,我们可以使用any来解决版本依赖版本冲突的问题。

    dev_dependencies:
      build_runner: any
    复制代码
    

    any会自动调用pub的版本分析器,寻找合适的能够避免冲突的依赖版本并下载。我们将不会再看到pub抱怨版本依赖版本冲突啦!

    还没完!

    我们知道我们不应该把any留在这,所以我们需要将正确的依赖版本把any关键字替换掉!

    使用pubspec.lock找到正确的版本

    我们打开pubspec.lock,这是根据当前项目依赖所生成的文件,记录了当前使用的依赖版本。

    我们可以在这里找到版本分析器为我们找到的无冲突的依赖版本号,这里可以看到build_runner使用了0.8.3版本的依赖。

    再回到pubspec.yaml文件,将any版本号替换成实际版本。

    dev_dependencies:
      build_runner: 0.8.3
    复制代码
    

    这样就可以完美解决版本依赖问题啦~

    Q&A:

    为什么不直接使用any作为版本号呢

    在实际项目开发中,拥有不确定性的版本号会成为未来应用崩溃的一个极大的隐患。这可能将会使您的应用难以调试。所以请记住,不要在你的项目中留下any关键字!

    相关文章

      网友评论

        本文标题:Flutter | 如何优雅的解决依赖版本冲突

        本文链接:https://www.haomeiwen.com/subject/pbxhdctx.html