私は現在、「ポータル」のようなものを構成する同じアプリケーションサーバーに展開されるmavenでビルドする約16のプロジェクトを持っています。私は、共通の依存関係やプラグインの設定を処理する親pomを構築しました。現在、私のSVN構造は次のようになります。親pomとsvnレイアウトのマルチモジュールmavenプロジェクト
portal_root
+project1
+tags
+branches
+trunk
+project2
.
.
.
+projectn
pom.xml
個々のプロジェクトはそれぞれ別々に配置されています。つまり、project1はproject2に依存せず、それぞれを変更して展開することができます。
これは、他の開発者がデフォルトですべてのタグとブランチのコピーをプルダウンする「ポータル」ルート全体(親のpomも取得する)をチェックアウトしたかったかのようにSVNに問題があります。本当に理想的ではない。
portal_root
+tags
+branches
+trunk
+project1
+src
pom.xml
+project2
.
.
.
pom.xml
しかし、今、すべてのプロジェクトの変更、タグのフォルダに追跡されます:私は考えることができる
唯一の他の事は、このようなものを使用することです。これは私にとって大きな問題ではありませんが、現在は分岐が苦しいようです。
Teamcityをこれに接続する作業も現在、ビルドする必要があるすべてのものをキャッチするために単一のディレクトリ(タグなど)を見るだけで済むので、少し簡単になります。また、エンタープライズNessusリポジトリに成果物を展開しています。
ビルドのライフサイクル全体とベストプラクティスについて話しているまともなドキュメントが見つかりませんでしたので、ここでいくつかの提案をお願いしたいと思います。
私は単一のmavenコマンドですべてのプロジェクトをビルドして展開できるという考えが好きです。私はまた、すべての共通の依存関係、リポジトリ情報、およびプラグイン情報を1か所に持つことが好きです。
これは私の問題を完全に解決しました!ありがとう! – Casey
子プロジェクトで親プロジェクトを使用する場合は、親データを依存関係として追加してください。 – cevaris