git および maven-modules を使用した maven-release-plugin に問題があります。
次のプロジェクト構造があります。
pom.xml(ApplicationTest and ApplicationConf are modules)
ApplicationWeb
---pom.xml(parent pom in root folder)
ApplicationTest
---pom.xml(parent pom in root folder)
ApplicationConf
---pom.xml(All environments are modules. This has no parent pom)
---ConfDev
-------pom.xml(parent ApplicationConf)
---ConfTst
-------pom.xml(parent ApplicationConf)
---ConfAcc
-------pom.xml(parent ApplicationConf)
---ConfPrd
-------pom.xml(parent ApplicationConf)
ここで、開発構成をリリースします (親は既にリリースされています)。これは、ApplicationConf/ConfDev/pom.xml で Maven リリースを実行することによって行われます。
変更されたものをプッシュしたいときに間違った git URL を使用するため、リリースの準備が失敗します。リリースしたい pom のアーティファクト ID を git URL に添付します。
http://gitrepourl/git_repo.git/artifact-id
ApplicationConf の pom で scm 設定を定義したので、すべての環境のルートになります。
<scm>
<developerConnection>scm:git:http://gitrepourl/git_repo.git</developerConnection>
</scm>
プロジェクト構造や設定が間違っているのでしょうか、それとも maven-release-plugin のバグですか?
使用したバージョン:
maven-release-plugin 2.3.2 および 2.4.1
Maven 3.0.5
考えられる解決策:
config 親 pom からすべての構成プロジェクトをモジュールとして削除し、すべての pom にさらに scm 情報を追加して、次のようにします。
<scm>
<url>https://github.com/XXX/YYY</url>
<connection>scm:git:ssh://git@github.com/XXX/YYY.git</connection>
<developerConnection>scm:git:ssh://git@github.com/XXX/YYY.git</developerConnection>
これで、すべての pom でリリースを実行できるようになりました。これは正しい解決策ですか?