回答:
サブモジュールに関するGitのドキュメントを読むことを強くお勧めします。すべてのソースがGitを使用していると仮定して、この問題に対処します。そうでない場合は、統合の目的でgitリポジトリをいつでも設定できます。努力は簡単であり、見返りは大きい。
依存関係をリポジトリに含める必要がありますか?
依存関係は、使用条件に違反しない限り、常にリポジトリに含める必要があると思います。ビルドを作成する前に、適切な依存関係の適切なバージョンを手動で見つける必要があるよりも、面倒なことはほとんどありません。確かに、これを行う自動化ツールがあれば簡単です。適切な依存関係を見つけてダウンロードできますが、現時点でWebに接続していない場合、サーバーがダウンしている場合、または依存関係のプロジェクト完全に廃止され、オフラインになりましたか?可能であれば、常に依存関係を含めてください。
依存関係は、プロジェクトの他の部分と同じビルドスクリプト内からビルドする必要がありますか、それとも別のビルドスクリプトからビルドする必要がありますか?
ソースからコンパイルする正当な理由がない限り、プリコンパイルされたバージョンを使用します。
そして、なぜビルドスクリプトにオプションを提供しないのですか?依存関係もコンパイルするかどうかを選択する簡単なスイッチ。ユーザーが依存関係もコンパイルすることを選択した場合は、製品のビルドスクリプトから独自のビルドスクリプトを呼び出すだけです。そのため、ユーザーは依存関係のビルドスクリプトを手動で呼び出すか、すべてのビルドを作成することを選択できます。ただし、ソースからコンパイルする正当な理由がない場合は、依存関係をバイナリとして提供するだけです。オープンソースの世界では、一部のライセンスではソースを製品とともに配布する必要がありますが、それはソースをプリコンパイルできないという意味ではありません。
要するに、可能であれば、スタンドアロンの作業パッケージ全体を提供します。これは、ユーザーに最も便利な機能を提供します。
これはユースケースに当てはまる場合も当てはまらない場合もありますが、私たちが仕事をしているのは、各ブランチに「参照」フォルダを含めることです。ここにサードパーティDLLを配置します。これにより、ソース管理で比較的不変のバイナリの多くの重複が発生しますが、ストレージは安価であり、各ブランチとタグは期待どおりの依存関係(およびバージョン)を常に持っています。
依存関係を自分でプリコンパイルし、コンパイル済みのバイナリをそのフォルダーに移動します。社内の共有ライブラリもこのように扱われます。こうすることで、プリコンパイルされた専用ライブラリ、オープンソースライブラリ、および社内ライブラリに対して同じ手法が機能します。
私がそれを読み直した今、あなたの質問に実際に答える限り、同じことをして、あなたのプロジェクトがLuaのプリコンパイルされた1.3.5バージョンを使用していることを述べてください。
Eclipseショップであるため、Buckminsterを使用してビルド/アセンブル/デプロイプロセスを管理し始めました。
最初の段階は、既存の依存ライブラリをすべて引き出し、バックミンスターに正しいライブラリを具体化させることでした。これにより、はるかに迅速で小規模な展開が可能になります。
次のステップでは、モノリシックsvn
リポジトリを一連のモジュール式git
リポジトリに移動します。
git
buckminster がサブモジュール(または、その件に関する水銀サブレポ)とどの程度うまく統合できるかはわかりませんが、buckminsterが特定のコンポーネントに使用されるVCSにとらわれないのは素晴らしいことです。