1

私はそのようなmavenマルチモジュールプロジェクトを持っています

modA  
modB
modC
modD
  custom-pom.xml

そしてこちらがポン

<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.xx.xx.correspondence</groupId>
  <artifactId>xxHudsonTP</artifactId>
  <version>1</version>
  <packaging>pom</packaging>

 <modules>
  <module>modA</module>
  <module>modB</module>
 </modules>
</project>

ここで、custom-pom.xml にブランチを作成する目的で release:branch を呼び出すと、次のようになります。

mvn release:branch -DbranchName=new-branch -f custom-pom.xml

最終的に、4 つのモジュールすべてを含むブランチが作成されます。

リリース プラグインを使用して、各モジュールを個別に分岐することなく、選択したモジュールのみが分岐されるようにする方法はありますか?

他の Maven プラグインはありますか?

編集済み この質問の背景は、私が扱っているsvnリポジトリには、生成する必要がある4つの異なるアーティファクトを持つ約20の異なるモジュールがあるという事実に由来しています。モジュールをサブフォルダーにグループ化することは簡単にできましたが、いくつかのモジュールはアーティファクト間で共通しているため、それらを分割することについてあまり考えませんでした。

すべてのモジュールを分岐するのは些細なことであり、おそらく管理が簡単であることは理解していますが、チームの他の開発者は、1 行のバグ修正などの単純なタスクを達成するには、あまりにも多くのことを処理しすぎていると感じています。それが役立つことを願っています。

4

1 に答える 1

0

私の知る限り、あなたが尋ねたことに答える解決策はありません。

マルチモジュール プロジェクト (集約) は、すべてのサブモジュールが同じアプリケーション ライフサイクルを共有することを意味することに注意してください。これは、モジュールとアグリゲーションが実際に意図しているものです。

2 つの異なる回避策があります。

あなたには2つの本当の異なるライフサイクルがあります

実際、4 つのサブモジュールには 2 つのグループがあり、たとえば group1 としましょう: A と B、グループ 2、C と D。

それらを 2 つの新しいプロジェクトに分割します。

Group1
|-- Project A
|   `-- pom.xml
|-- Project B
|   `-- pom.xml
`-- pom.xml

Group2
|-- Project C
|   `-- pom.xml
|-- Project D
|   `-- pom.xml
`-- pom.xml

長所 : グループ 1 と 2 を別々に分岐できる場合があります。短所:すべてのプロジェクトで(1つのコマンドで)同時アクションを実行できなくなります(リリースやビルドなど)

あなたは本当に1つのライフサイクルを持っています

これはおそらくそうです。プロジェクトの基礎となるアーキテクチャをよく理解しているため、サブモジュールを 1 つまたは 2 つだけ分岐したい場合があります。ですから、あまりにも多くの conf / artifacts / time building に対処したくありません...実際、これらすべての理由は、目に見えない間接的な影響を与える可能性があります。常にプロジェクト全体をビルドしてください!

これがスペースを節約するための場合 (ただし、Yorkw が言ったように、ほとんどの SCM では少ないスペースで分岐できます)、SCM ではサブモジュールのみを取得できるため (Clearcase のように両方とも可能です) ... 申し訳ありませんが、ありません解決。これはMavenの方法であり、これは良い方法だと思います。(少しデマゴジックですが、私が言ったことを本当に信じています)

モジュールのサブセットのみを分岐したい理由を説明することを躊躇しないでください。別の理由がある場合は、より正確な解決策が得られる可能性があります。

于 2012-10-15T12:09:16.730 に答える