0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Flutter】Git packageを依存関係に追加する際エラーとなる場合の対処法

Last updated at Posted at 2023-12-05

Flutterにおいて、内製パッケージなど、pub.devに無いパッケージを依存関係に追加する場合、gitのURLでソースを指定する Git packages や、ローカルのパスでソースを指定する Path packages などの方法があります。

今回、社内で内製したパッケージをGit packagesとして依存関係に追加しようとしたとき、以下のようなエラーが発生しました。

Because every version of package1 from git depends on package2 from hosted
 and project1 depends on package2 from git, package1 from git is forbidden.
So, because project1 depends on package1 from git, version solving failed.

当該エラーは、同一のgitリポジトリ内に複数のパッケージがあり、その中のあるパッケージがもう一方のパッケージに依存している場合に発生します。
今回の例では、同一gitリポジトリ内のpackage1とpackage2が依存関係にあります。

pubspec.yaml
dependencies:
  package1:
    git:
      url: ssh://hoge@hoge.com/my_packages.git
      path: packages/package1
  package2:
    git:
      url: ssh://hoge@hoge.com/my_packages.git
      path: packages/package2

この場合、dependency_overrides内にも指定するよう修正することでエラーが解消されます。

pubspec.yaml
dependencies:
  package1:
    git:
      url: ssh://hoge@hoge.com/my_packages.git
      path: packages/package1
  package2:
    git:
      url: ssh://hoge@hoge.com/my_packages.git
      path: packages/package2
      
dependency_overrides:
  package1:
    git:
      url: ssh://hoge@hoge.com/my_packages.git
      path: packages/package1
  package2:
    git:
      url: ssh://hoge@hoge.com/my_packages.git
      path: packages/package2
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?