問題

私は次のような構造を使って大きなアプリケーション(〜50モジュール)を持っています:

  • アプリケーション または または 通信モジュール または または カラー通信モジュール SSN 通信モジュール 等通信モジュール または ルータモジュール サービスモジュール または または 投票サービスモジュール または または 投票用のWebインターフェイスサブモジュール 投票のための投票コレクタサブモジュール 議決権のための等 または クイズサービスモジュール 等モジュール または または

アプリケーションをMavenとSubversionにインポートしたいと思います。いくつかの研究の後、私はこれに2つの実用的なアプローチが存在することを発見しました。

1つは、前のツリー構造と同じようにツリー構造を使用しています。この構造の欠点は、マルチモジュールレポートをMavenでうまく動作させるために大量の調整/ハックが必要であることです。もう1つの欠点は、Subversion標準のトランク/タグ/ブランチアプローチでは、リポジトリにさらに複雑さを追加することです。

他のアプローチでは、親プロジェクトが1つしかなく、すべてのモジュール、サブモジュール、partsof-the-submodulesは親プロジェクトの直接の子です。このアプローチは報告にうまくいき、Subversionでは簡単ですが、このように構造のビットを失うと感じています。

長期的にどちらを選びますか?なぜですか?

  ベストアンサー

私たちはlargishアプリケーション(各バンドルがMavenモジュールである160 + OSGiバンドル)を持っており、私たちが学んだレッスンは、フラットが優れていることです。あなたの階層のエンコーディングセマンティクスの問題は、柔軟性を失うことです。 100%のモジュールは、今日の「通信」が部分的に「サービス」である可能性があり、リポジトリ内で物事を移動する必要があります。

だから私はフラットな構造をお勧めし、セマンティクスを別の場所にエンコードすることをお勧めします(たとえば、IDEワークスペースやドキュメントなど)。

私はいくつかの詳細のバージョン管理レイアウトに関する質問に、別の質問の例で答えました。

  同じタグがついた質問を見る

javasvnmaven-2