2011-01-04 3 views
9

依存マネージャーについてはすでにいくつかの質問がありますが、ほとんどは依存関係のトラッキングと解決をより簡単にするためのものを探していますが、ほとんどシステムです。私は必ず新しいビルドシステムを学ぶことに興味がない)。C++用のソースコード依存マネージャー

一般的に、私たちはプロジェクトといくつかの共通コードを別のプロジェクトに持っています。この共通コードはライブラリとして編成されているので、プロジェクトの最新コードバージョンを取得するには、ソースコントロールからすべてのライブラリを取得する必要があります。これを行うには、依存関係のリストが必要です。その後、プロジェクトをビルドするために、このリストも再利用できます。

私はMavenとIvyを見てきましたが、C++用のプラグインがあるかもしれませんが、それらがC++用に適切かどうかは分かりません。それらを推薦する人々)。

私はGUIツールとして、標準化された依存関係リストを生成します。このスクリプトは、さまざまなスクリプトなどで解析することができます。ソースコントロール(タグ、依存関係付きのタグ付きバージョンの取得)それはオプションです。

ご意見はありますか?たぶん私は何かを見逃しているのでしょうか?通常、このようなツールを必要とせずに他の方法でやっていますか?ありがとう。

+0

@ 7vies:私が働いている会社は、自分のシステムを転覆させてしまった(これは今のところ最初の目標をはるかに超えています)、私は本当に既存の自由なアプローチに興味があります。おそらくアイデアを集めるだけです:) –

+0

@Matthieu:それはオプションですが、私のニーズに合わせて既存のツールをカスタマイズすることをお勧めします。 –

+0

Mavenをhttp://duns.github.com/maven-nar-plugin/で使用することができます( C、C++、.soなど)。それに基づいて、ビルドのためにモジュールが依存するコンポーネント/モジュール/ libのリストを与える依存関係情報を作成することができます。コンポーネントが他のコンポーネントによって独立して配備されている場合は、他のプラグイン(maven-versions-plugin http://mojo.codehaus.org/versions-maven-plugin/examples/display-dependency-updates.html)を使用して、新しいバージョンのモジュールなどが存在します。したがって、依存関係を更新することができます。 – khmarbaise

答えて

2

Cavenとの関係でMavenを使用するには、2通りの方法があります。まず、コンポーネント間の依存関係管理に使用できます。次にMaven-nar-pluginを使用して、ブーストライブラリ(私の経験)との関係で共有ライブラリと単体テストを作成することができます。最後にRPM(maven-rpm-plugin)を作成して、適切なインストールメディアを用意することができます。さらに私は、Maven(HudsonのRPM、RPMのNexusインストール)を介してCI環境のインストールを作成しました。

+0

私はそれがwindows/MSVCなので、どういうわけか違います。私は、Mavenの依存関係管理がどのように成功したか知りたいですか、何か制限があることに気づいたことがありますか、他のツールが必要だと感じましたか? –

+0

Windowsのみを気にする人は、msbuildの使用はどうですか? Visual Studioにこのような機能がいくつかサポートされていると思います。 PLus最新のV​​isual Studio 2010をお持ちの場合は、このプレゼンテーションが面白いかもしれません:http://blogs.msdn.com/b/vcblog/archive/2011/01/06/alm-for-c-in-visual -studio-2010.aspx –

+0

私は、Mavenを使って複数のC++リポジトリの依存関係を管理することに興味があります。チュートリアルはどこで見つけることができますか? – dilig0

1

ビルドツールとしてバージョン管理システム(VCS)が表示されるのかどうかは分かりませんが、MercurialとGitはサブリポジトリをサポートしています。 - メンテナンスのためにとにかく必要 - とLIBSを参照してください

ビルド結果をアーカイブするためにあなたのVCSを使用する:あなたのケースでは、サブリポジトリは、あなたの依存関係になりますおよびビルド環境のヘッダーファイル。

参考資料をお探しの場合はhttps://android.googlesource.com/platform/manifestをご覧ください。

+1

これは依存関係の非常に単純化されたモデルです。いつも 'svn:externals'のように問題を引き起こす可能性のある制限があります。 –

+0

Debian(よく知られているLinuxディストリビューション)とそのビルド環境での経験があります。 DebianとLinuxを中心としたもので、多くのルールに従わなければなりません。自己管理型リポジトリを含むパッケージ管理システムを使用する必要があります。すべてのことに従えば、開発とデプロイ時に、バージョンの依存関係、競合、置き換え、代替案など、すばらしい開発とデプロイメント環境が得られます。匹敵するものは見たことがありませんが、それはDebianとLinux特有のものです。 どこにでも制約があります。あなたはそれを支配することができるものを選ぶ必要があります。 –

+0

この場合、パッケージ管理システムは依存関係マネージャです。もちろん、それはサブリポジトリに基づいていないし、いくつかのVCSに組み込まれていません... –

関連する問題