1

Maven 3.0.4 を使用しています。私はマルチモジュールプロジェクトを持っていますが、空想的でもエキゾチックでもありません:

/pom.xml (aggregator pom)
   parent/
      pom.xml
   childA/
      pom.xml (inherits from ../parent/pom.xml)
   childB/
      pom.xml (inherits from ../parent/pom.xml)

ルート レベルにトランク/ブランチ/タグがあります。

すべての pom には scm セクションがあります。

pom.xml:
   <scm>
       <developerConnection>scm:svn:https://mysvnrepo.com/svn/project/trunk</developerConnection>
   </scm>

parent/pom.xml:
   <scm>
       <developerConnection>scm:svn:https://mysvnrepo.com/svn/project/trunk/parent</developerConnection>
   </scm>

childA/pom.xml:
   <scm>
       <developerConnection>scm:svn:https://mysvnrepo.com/svn/project/trunk/childA</developerConnection>
   </scm>

他の人がここと JIRA の複数のバグ レポートで報告しているように、mvn release:prepare を実行すると、作成されるタグはトップ レベルのプロジェクトですが、トランクにタグを付ける代わりに、1 レベル上にタグを付けています。したがって、プロジェクトのルートは次のようになります。

/
   trunk/
   branches/
   tags/
       project-0.0.1/
          trunk/
          branches/
          tags/

私が見つけたこれに対する解決策はないようです。バグレポートは、特定のバージョンで修正された後、他のバージョンでリグレッションが導入されたことを示唆しています。また、修正されたと報告されているバージョンでさえ、修正されていないという報告もあります。

リリース プラグインの v2.0、2.1、2.4.1 を試しました。最上位の scm URL に末尾の「/」を追加しました。何も役に立ちません。

セットアップに明らかに問題がありますか?

更新:アグリゲーターと親 pom を分離する正当な理由がなかったので、それらを組み合わせて、リリース プラグインが期待どおりに動作するようにしました。これがそれほどエキゾチックな設定だとは思わなかったので、これがうまくいかなかったことにまだ驚いています。専門家がサンプル プロジェクトを希望する場合は、喜んで試してみます。

4

1 に答える 1

2

アグリゲーターとフラットなマルチモジュール プロジェクトの両方を使用しているということですか? 親フォルダーから解放すれば、すでに機能しているはずです。「プロジェクトごとのタグ」などがないことに注意してください。そのため、子の SCM セクションは使用されません。リリース中、実行中のプロジェクトに基づいて 1 つのタグが作成されます。はい、アグリゲーターの pom.xml がトランクの直下にある場合も驚きです。

このフォルダー構造を参照しているチケットを覚えていないため、問題が修正されたと主張する JIRA の問題を参照していただけると助かります。

于 2013-07-12T21:10:44.867 に答える