オープンソースプロジェクトからモジュールをフォークしながらMavenと戦う。ソースは、次の構造を持つマルチモジュールMavenプロジェクトです。
.
|-- module-a
| `-- pom.xml
|-- module-b
| `-- pom.xml
|-- module-c
| `-- pom.xml
|-- module-...
| `-- pom.xml
`-- parent
`-- pom.xml
プロジェクト全体をフォークすることはできません。いくつかのモジュール、たとえばmodule-a
とをフォークする必要があるだけですmodule-b
。
バージョン管理では、元の番号を追跡し、最後に接尾辞を追加する必要があります:-${org}-${inc}
、ここで:
${org}
組織の名前です(固定)${inc}
は、同じコミュニティバージョンからフォークされたプロジェクトをリリースするたびにインクリメントする序数です。
親参照を保持することにより、元のプロジェクトへのリンクを保持します。したがって、私のフォークはコミュニティの親POMから継承します。
この問題は、コミュニティの親POMが、を使用してすべての子アーティファクトによって共有される内部依存関係を宣言しているために発生し<version>${project.version}</version>
ます。
したがって、フォークのバージョンを次のように設定して3.10.1-org-01
も機能しません。ビルドでは、フォークがバージョンに存在する必要のない他の関連するアーティファクトが想定されているためです3.10.1-org-01
。
finalName
アーティファクトがビルド出力ディレクトリ(target /)に正しい名前で表示されていても、古い名前でMavenリポジトリにインストールされ、コミュニティバージョンをオーバーライドするため、をのように設定して${project.artifactId}-${project.version}-${org}-${inc}
も効果はありません。不誠実な現実を作成します。
この場合も、分類子を友達にする方法は見つかりませんでした。
コミュニティの親POMもフォークし、フォークされたモジュールの依存関係のバージョン番号を調整する以外に、何かアイデアはありますか?
ありがとう!