2016-07-05 24 views
2

私は新しいです。私は単一のgitリポジトリに存在できないgoプロジェクトに取り組んでいます。正確なケースは、私が開発している図書館を公開しなければならず、同時にそれに依存する私的なプロジェクトがあることです。このようなニーズが発生する可能性のある他のシナリオが多数あると私は考えています。コンポーネント開発の依存関係管理

既存の依存関係管理は、コンポーネントや他のサードパーティの依存関係が、異なるリポジトリロケーションに切り替えることで明確かつ明確なステップで移動するという概念を基に設計されているようです。

私の場合は、コードの私の公開部分と私的部分を一緒に成長させたいと思います。既存の私的プロジェクトの構築を破ることなく私の公立図書館に提出することができます。そしてその後私の個人的な依存プロジェクトをそのようなバージョンに合わせて修正しました。

これを達成するために私の公立図書館のほとんどすべての変更に対して異なるリポジトリアドレスを作成することは、過度の作業や費用がかかるようです。

アドバイスはありますか?

+0

更新日:2018年2月:公式プロジェクトはありませんvgo:https://stackoverflow.com/a/48914523/6309 – VonC

答えて

1

1.5 Goにはベンダーのサポートが組み込まれています(1.6以降はデフォルトで有効)。

あなたの最善の策は、プライベートパッケージのvendor/フォルダの下にgitサブモジュールとしてパッケージを展開し、手動でアップグレードすることです。

これを単純化するツールがたくさんありますが、私は個人的にはmanulを使っていますが、これはやや単純です。

https://github.com/golang/go/wiki/PackageManagementToolsです。

+1

その他のツールの調査:https://blog.filippo.io/analyzing-go -vendoring-with-bigquery/gvtの使用方法の作者、https://forum.golangbridge.org/t/the-best-dependency-manager/1281で議論されています。 – twotwotwo

+0

あなたのニックネームは「マッチ」です。 https://imgur.com/MQ4uQcg – jsxqf

+0

しかし、私は未来からのBORG無人機です:( – OneOfOne