web-dev-qa-db-ja.com

org.Apache.maven.BuildFailureException:からのリリースを実行するためのSCMURLが提供されていません

私はMaven2.2.1を使用していて、正常に実行しました。

mvn -B release:clean release:prepare

しかし、次のコマンドを実行すると、エラーメッセージ 'リリースを実行するためのSCM URLが提供されていません'が表示されます。

mvn release:perform

私のpom.xmlには、scmタグが正しく定義されています。

<scm>
    <url>file:///C:/tmp/svnrepo/myproj/trunk</url>        
    <connection>scm:svn:file:///C:/tmp/svnrepo/myproj/trunk</connection>
    <developerConnection>scm:svn:file:///C:/tmp/svnrepo/myproj/trunk</developerConnection>        
</scm>
15
DarVar

ルートフォルダに手動で編集したrelease:performファイルを作成することで、Maven release.propertiesを再実行できます。このファイルは、scm.urlscm.tagの2つのプロパティを定義する必要があります。ここに可能な例:

scm.url=scm:git:https://github.com/owner/repo.git
scm.tag=v1.0.4

このファイルを使用すると、release:performタスクをやり直すことができます。

これに触発されて 回答

7
Jmini

mvn -DdryRun=true release:performを実行したようですが、これにより、release.propertiesファイルが準備段階から削除されました。

そこで、コマンドに-DconnectionUrlを追加して、タグのURLを指定します。

7
DarVar

動作するはずです。同様の問題が発生しましたが、私の場合、ネットワークエラーが原因で実行に失敗し、次のような方法で再起動する必要がありました。

mvn release:perform -rf :{ARTIFACT ON WHICH IT FAILED} -DconnectionUrl=scm:svn:{URL TO TAG}
4
Igor

CI自動化でこれと同じ例外が発生しましたが、これはtarget/checkoutディレクトリにすでにリリースビルドがあることが原因であることが判明しました。プロジェクトの1つでは、実際のMavenのrelease:prepareステップとrelease:performステップの間に即興のMavenリリース実行ビルドを導入する必要がありました。即興の一環として、リリースタグがtarget/checkoutにチェックアウトされ、このディレクトリが削除されないままになっていると、release:performNo SCM URL was provided to perform the release fromエラーで失敗することに気づきました。重要かどうかはわかりませんが、-DlocalCheckout=trueオプションも使用しています。

0
haridsv