Dart のパッケージ マネージャーである Pub は、パッケージを名前だけでなく、どこから来たのかによって識別します。pub が同じ名前の 2 つのパッケージを検出したが、2 つの異なるソースからのものである場合、「パッケージ foo はソース 'sdk' と 'hosted' の両方に依存しています」のようなエラーをスローします。
これを解決するには、すべての依存関係が同じソースの同じパッケージを参照していることを確認する必要があります。
sdk
すべての SDK パッケージが pub.dartlang.org でホストされるようになったため、適切な解決策は、すべてのパッケージでソースの使用を停止することです。
変更する必要があります:
dependencies:
unittest: { sdk: test }
これに:
dependencies:
unittest: any
は、any
「pub.dartlang.org の任意のバージョン」を意味します。
次のパッケージは現在、新しい正規のホームである pub にあります。
- 引数
- http
- 国際
- ロギング
- メタ
- oauth2
- 単体テスト
- ウェブドライバー
上記のパッケージのいずれかを使用する場合は、pubspec.yaml ファイルfoo: any
の代わりに使用してください。{sdk: foo}
もちろん、開発者は独自の pubspec.yaml を更新できますが、サードパーティの依存関係を制御できない場合があります。パッケージの作成者に電子メール (pub.dartlang.org から入手できます) で連絡し、unittest などのホストされたパッケージを使用するように更新するよう依頼することをお勧めします。
詳細については、http://news.dartlang.org/2012/12/sdk-packages-now-available-on-pub.htmlを参照してください。