1

pom.xml ファイルの scm タグに少し問題があります。

私のプロジェクト アーキテクチャは次のようになります。

Parent
Submodule1
Submodule2
reactor

親は、すべての Maven プラグイン構成、ライブラリ バージョンなどを保持するプロジェクトです。すべてのサブモジュールの親であるリアクター プロジェクトの親です。

Reactor は、すべてのサブモジュールをコンパイルするためのタグを含む pom.xml です。

上位のpom.xmlなので、親のpom.xmlにscmタグを付けたいと思います。しかし、「mvn release:prepare」を実行しようとするとエラーが発生します。

だから私はリアクターのpom.xmlにscmタグを入れて、それは動作します。

それは私にとっては良いことです、それは機能します:)しかし、なぜscmタグをリアクターpomに入れる必要があるのか​​ わかりません。

誰かが私にこの振る舞いを説明できますか?

ありがとう。

編集:

フォルダ構造は次のとおりです。

root
  parent
    pom.xml (parent)
  submodule1
    pom.xml
  submodule2
    pom.xml
  pom.xml (reactor)

ポンリアクターの興味深い部分は次のとおりです。

<parent>
    <groupId>groupId</groupId>
    <artifactId>parent</artifactId>
    <relativePath>./parent/pom.xml</relativePath>
    <version>1.0.2-SNAPSHOT</version>
</parent>

<modules>
    <module>parent</module>
    <module>submodule1</module>
        <module>submodule2</module>
</modules>

最後に、ここに release:prepare のエラーがあります:

[INFO] SCM プロバイダー メッセージにタグ付けできません: svn tag コマンドが失敗しました。コマンド出力: svn: パス 'http://10.211.55.4/svn/trunk/reactor' はリビジョン 112 に存在しません

4

1 に答える 1

1

最初の要件は、SVN のトランク、タグ、ブランチ フォルダーが存在することですが、scm パーツは親ではなくリアクターでのみ定義する必要があります。

  root
    +-- pom.xml (reactor)
    +-- parent
    !      +-- pom.xml (parent)
    +-- submodule1
    !      +-- pom.xml
    +-- submodule2
           +-- pom.xml

さらに、maven-release-plugin (reactor) も true で定義する必要があります。

このような状況のデフォルトの処理は、Maven が SVN パスの相対的な変更を行うことです。これはあなたが持っているようなトラブルを引き起こします。したがって、情報を親pomではなくリアクターpomに入れる必要があります。非常に重要なのは、構成を 1 つだけにすることです。

さらに、サイト生成フェーズで問題が発生する可能性があるため、親を削除して情報をリアクターに入れることをお勧めします。

  root
    +-- pom.xml (parent)
    +-- submodule1
    !      +-- pom.xml
    +-- submodule2
           +-- pom.xml
于 2011-06-19T17:17:08.280 に答える