2015-10-17 24 views
5

パッケージのcolletionを作成したいとします。たとえばに関連しています。 私は料理と呼ばれるコアパッケージがあるでしょうし、私は、複数の調理パッケージたい:ダーツパッケージでギブスの増殖を防ぐ方法を教えてください。

  • 料理、メキシコ
  • 料理、インド
  • 料理隊

それぞれ使用する料理。そして、もっと一般的なパッケージが将来作成されるかもしれません。この 構造体をgithubに設定して、それぞれに の別々のレポを作成する必要はなく、クライアントプロジェクトでは、必要なパッケージだけを にプルすることができます。

パッケージはgithubパッケージ内のパスを参照できますか?彼らはあなたがgitのを参照できる方法を示しパブの依存関係ページから

dependencies: 
    cooking: 
    git: 
     url: git://github.com/munificent/cooking.git 
     ref: some-branch 

しかし、理想的には私がしたい:

dependencies: 
    cooking-indian: 
    git: 
     url: git://github.com/munificent/cooking.git 
     ref: some-branch 
     # path relative to cooking.git that has pubspec.yaml 
     path: cooking-indian 

はNパッケージと1つのgithubのレポを持ってする方法はあります一部のサブセットはパブ経由で選択できますか?

答えて

2

個別に公開されているサブフォルダ内のすべてのパッケージを含む、トップレベルのgitリポジトリを常に1つ持つことができます。パブは、個々のパッケージがpub package layout formatに準拠している限り、各パッケージがレポジトリであることを強制しません。

プライベートレポスを使用している場合、フェッチするためにgithubに頼るのではなく、setup a private pub hostにすることができます。

しかし、パブは現在、git reposのサブツリーから直接フェッチをサポートしていません。この機能の実装に努力したい場合は、gitのsparse checkout機能を利用してこの機能を実装できます。

+0

パブリケーションからコードを入手できるようにするには、依然として増殖が行われますが、開発にはgitを使用して特定のバージョンを取得する必要があります。複数のパッケージをgitに置くということは、pubはパッケージをリポジトリのルートにする必要があるので、pubspec gitセレクタ機能を使用できないことを意味します。 – user1338952

+0

このリクエストに対して[未解決の問題](https://github.com/dart-lang/pub/issues/1305)がありますが、今日は誰もその作業を進めていません。 このパターンは[build repo](https://github.com/dart-lang/build)で使用されていますが、バージョンがパブに公開される前にtravisでのテストに関するいくつかのトリッキーな部分があります。 pubに公開された特定のバージョンを使用することは常に可能です。特定のバージョンにロックダウンする唯一の方法ではありません。 – Nate

関連する問題