私は、共通のコードの共有を強調して、共通のソースリポジトリを使用してエンタープライズで動作するために最も適切なビルドシステムを選択しようとしています。ソース階層を次のようにしたいと思います。
--src -java - 一般 -ネット -データベース --team1 --team2 --team3 --lib -テスト -java - 一般 -ネット -データベース --team1 --team2 --team3 --lib
目標は、team[1-3]が依存関係を明示的に指定する独立したビルドを持つことができるビルドシステムを持つことです。依存関係は次のようになります。
--team1 -common / net --team3 / lib --team2 -共通/データベース --team3
したがって、たとえば、team1のビルドには、team1、common / net、およびteam3/lib内のすべてが含まれます。しかし、他には何もありません。理想的には、テストは同じ方法で統合されます(team1のテストでは、team1、common / net、およびteam3 / libのテストが実行されます)。
私は現在Antを使用していますが、このような階層を管理するための適切な方法を見つけていません。依存関係の階層を管理する機能についてMaven2を調べ始めましたが、モジュールごとに本格的なプロジェクトが必要なようです。それは問題ではありませんが、従来のJavaパッケージ階層にうまくマップされないディレクトリ構造に私を強制するようです。別のレイアウトを使用してビルダーでやりたいことができるかもしれないようですが、それがもろいことがわかるかもしれないのではないかと心配しています。
誰かが私のために働くかもしれない何かを推薦できますか?