web-dev-qa-db-ja.com

同じ製品を形成する複数のプロジェクトをどのように処理しますか?

システムの構築とバージョン管理に関しては、経験が限られています。私は一般的な問題に遭遇したように感じますが、それが通常どのように処理されるかを明らかにするのに苦労しています。

4つのソースコードプロジェクトがあるとします。

  • fooLib-共有ライブラリ
  • fizzLib-共有ライブラリ
  • buzzApp-fooLibに依存するアプリケーション
  • barApp-fizzLibとfooLibに依存するアプリケーション

ここで、2つの製品があるとします。

  • ProductA-buzzAppのみが必要
  • ProductB-barAppのみが必要

私のタスクがProductBのバグ修正を行うことであった場合、プロジェクトをチェックアウトするにはどうすればよいですか?私は依存関係を理解する(またはそれらを調べる)ことになっていますか、それともこれを行うための自動化された方法がありますか?また、これを各製品のナイトリービルド用にどのように自動化できますか?

2
josec

これは2つのことに依存します:

  • どのバージョン管理システムを使用していますか?
  • どのビルドシステムを使用していますか?

このようなプロジェクトの場合、私は過度に推奨することはできません Jenkins 。バージョン管理システムを監視し、変更が加えられたときにプルし、ライブラリを構築してから、必要に応じて最終製品を作成します。

私が行った(そしてこれが行われたのを見た)方法は、バージョン管理システムで4つの別々のプロジェクトを作成することです。

ライブラリのビルドシステムは、最終的なライブラリ(必要に応じて.soまたは.lib)を作成します。最終的なビルド結果は、誰もがアクセスできるように共有ドライブまたは共有サーバーに公開されます。

アプリケーションのビルドサーバーでは、ライブラリはビルドプロセスの最終パッケージからインストールされます。

4つのステップすべてを一度に実行するマスタービルドスクリプトをビルドする試みを見てきました。しかし、手作りのスクリプトは非常に壊れやすい傾向があります。 Jenkinsを使用します。それはあなたの正気を救うでしょう。

1