0

Eclipse には、私が使用している優れた機能があります。SCM から Maven プロジェクトをチェックアウトします。これは、マルチモジュール プロジェクトの親 pom を取得してチェックアウトし、そのすべてのモジュールをローカル ワークステーションにチェックアウトします。とても使いやすく、とてもきれいです。チームで使うには最高です。プロジェクトを階層的に保存します(これは私が好きです)...たとえば、親のpomはルートであり、すべてのモジュールは親内のフォルダーにあります。

ただし、ここでは別の要素を追加する予定です。ほとんど変更されない設定のための組織全体の POM です。私が混乱している唯一のことは、組織全体の pom を使用する他の (関係のない) プロジェクトの構造がどのように変更されるかということです。他のスーパーポムを親会社の「モジュール」としてリストしたくありません。非常にシンプルにしたいだけです。

各プロジェクトに 3 つのレベルのフォルダーを持たずに、マルチモジュールの親プロジェクト (POM パッケージを使用するプロジェクト) を実際に組織全体の pom のモジュールにする方法はありますか? たとえば、その pom をアーカイブ リポジトリに保存して、依存関係を使用して解決できるようにすることはできますか (実際にファイルをプロジェクトのルートに置くのではなく)。

これを機能させるには、プロジェクトを階層構造からフラット構造 (親と同じディレクトリにあるすべてのモジュール) に変更する必要がありますか?持っていますか?

この構造を使用する組織で働く人々は、通常、これらのプロジェクトをどのように保存およびチェックアウトしますか? ここで何が欠けていますか?マルチモジュール プロジェクト (親 pom なし) は非常にクリーンで使いやすいです。別のレイヤー(スーパースーパーポン)を追加すると、本当に混乱します!

ありがとう!

4

2 に答える 2

3

親 POM としてリンクし、共通の設定を継承できるようにするために、組織の pom にモジュールをリストする必要はありません。組織の POM をアーカイブ、Nexus、Artifactory などに保存する場合は、settings.xml または各プロジェクトの pom.xml ファイル内でリポジトリを指定するだけです。親要素がそれを整理するため、組織の POM ファイルに依存関係を追加する必要はありません。

親の pom リンクに空のパスを入れてみましたか:

<relativePath></relativePath>

これにより、maven はファイル システムではなくリポジトリで親 pom を探すようになります。

于 2012-03-19T05:32:05.940 に答える
1

組織の pom (会社の pom と呼びます) は、通常の Maven アーティファクトとして処理する必要があります。つまり、VCS に存在する必要があり、もちろん maven リリース プラグインを介してリリースする必要があります。さらに、企業は単一のリリース リポジトリと SNAPSHOT 用に 1 つだけを持つ必要があります。会社の pom には独自のリポジトリが必要です。これは、groupId、artifactId、および version によって識別されるため、リリース リポジトリに簡単に配置でき、GAV 座標 (groupId、artifactId、version) によってさまざまなプロジェクトから親として参照できます。通常、relativePath は必要ありません。マルチモジュール ビルドは、相対パスがなくても動作するはずです (「設定より規約」パラダイムに注意してください)。

于 2012-03-19T08:30:48.213 に答える