2011-08-04 27 views
3

暫定的に2つのソフトウェア会社、A & Bがありました。両社には約2百のEclipseプロジェクトがあります。いずれもアプリケーションの最終製品がいくつかあります。各エンドプロダクトプロジェクトは、他のプロダクトとは依存関係がありません。非jar SVN依存関係管理

Aは依存関係管理のためにmavenに依存します。これはコードのフリーズを実践し、したがってプロジェクトを互いに切り離し、したがって依存関係を解消することができます。

Bは、Eclipse Subversiveプラグインに依存しています。特定の最終製品プロジェクトでは、依存するすべてのプロジェクトがSVNからチェックアウトされ、Eclipseプロジェクト構築パスに含まれます。プロジェクトが50個のプロジェクトに依存している場合、50個のプロジェクトすべてがソースコードの変更を受けるため、Mavenを使用しないのです。

2社がABに合併しました。 SVNリポジトリでも動作する依存関係管理のようなものが必要です。つまり、仮説POMはjar依存(会社Aスタイル)またはSVNソースコード依存(B社スタイル)のいずれかを指定できなければなりません。依存関係がjarの場合、依存関係をリポジトリから開発者のワークステーションのmavenキャッシュにプルする必要があります。依存関係がSVNのソースコードであれば、それはSVN作業ディレクトリにチェックインする必要があります。

AB社は、技術的に2つの構築姿勢を一元化して、ビジョンをどのように進めるべきでしょうか?私は、合併した会社の開発者の哲学的態度を微調整または修正することに対処する回答を避けるために「技術的に」指定します。

助けが必要ですか?もしそうなら、どうやって?その他の選択肢は何ですか?

答えて

3

おそらくB社が作成したプロジェクトは、出荷/ビルドの一環としてパッケージ化された(jar)製品を作成します。この場合、AB社は独自のアーティファクトリポジトリを作成し(私の会社はArtifactoryを使用)、B社のプロジェクトをバージョン対応リリースまたはスナップショットとしてそのリポジトリに手動で(または自動的に)追加することができます。そして、A社のプロジェクトは依存関係をjarの依存関係として指定し、アーティファクトから引き出すことができます。

深く依存していて同時に頻繁に編集されるプロジェクトの場合、1つのルートプロジェクトのサブプロジェクトにすることをお勧めします。

上記の私の提案では、Gradleを使用する必要はありませんが、Gradleは実装が容易です。

2

svn:externalsは技術的な解決策です。次に、Mavenの依存関係がそれほど悪くないことを悪用する開発者を教えてください。