SVN を使用してソース ファイルをバージョン管理し、Maven リリース プラグインを使用してリリースを作成およびタグ付けします。私のプロジェクトはマルチモジュール プロジェクトです。
ショートストーリー
release:prepare ゴールにより、トランクとタグの両方が SCM でタグ付けされます。
長い話
私のプロジェクトはマルチモジュールプロジェクトです:
bar
module1
module2
...
pom.xml
SCM タグは、プロジェクトの親 POM bar/pom.xml で次のように構成されています。
<scm>
<connection>scm:svn:http://svn.mycompany.local/svn/foo/projects/bar/trunk</connection>
<url>http://svn.mycompany.local/svn/foo/projects/bar/trunk</url>
</scm>
私が実行すると:
mvn release:prepare -DskipTests=true -DautoVersionSubmodules=true -DdevelopmentVersion=1.1 -DdryRun=true
pom.xml.tag の SCM タグは変更されていますが、例外としてではありません。
<scm>
<connection>scm:svn:http://svn.mycompany.local/svn/foo/projects/bar/tags/bar-1.0/trunk</connection>
<url>http://svn.mycompany.local/svn/foo/projects/bar/tags/bar-1.0/trunk</url>
</scm>
そして、リリースを実行すると:
mvn release:clean release:prepare release:perform -DautoVersionSubmodules=true -DdevelopmentVersion=1.1
ディレクトリ トランク AND タグは、tags フォルダーでタグ付けされます。リポジトリでこの構造を取得します。
bar
/trunk/
[...]
/tags
/bar-1.0
/trunk
/tags
次に、実行目標が失敗します。
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-release-plugin:2.0:perform (default-cli) on project bar: Error executing Maven.
Working directory "C:\projects\foo\bar\target\checkout\bar" does not exist! -> [Help 1]
実際、私はこれを target\checkout ディレクトリに持っています:
tags\
trunk\
同じ種類の構成で問題なく動作する他のプロジェクトがいくつかあります。
私がチェックしたこと: - 私のサブバージョン構造は従来のブランチ/トランク/タグに従っているので、tagBase をここで言及する必要はありません - 効果的な POM は正しい SCM 構成を示しています (もちろんタグ付けの前に) - もちろん、SCM の URL がpom.xmlの場所を修正してポイントします
だから、どこを見たらいいのかわからない。同じ問題を抱えていたり、アイデアを持っている人はいますか? 何が欠けていますか?
ありがとう。