[英]Maven release plugin not using configured username
我正在使用maven-release-plugin:2.5.1。 我需要配置它以使用公鑰/私鑰身份驗證連接到SVN。 嘗試通過SSH連接到SVN時,我在配置中使用正確的用戶名時遇到問題。
我的deploy-settings.xml <server>
配置看起來像:
<server>
<id>my.server.org</id>
<username>[XXXX]</username>
<privateKey>/home/[YYYY]/.ssh/id_rsa</privateKey>
</server>
我的pom.xml <scm>
配置看起來像:
scm:svn:svn+ssh://my.server.org/data1/svns_zzzz/zzzz/path/to/the/project/trunk
我的mvn
命令行如下所示:
--batch-mode release:clean release:prepare release:perform
-s /home/[YYYY]/.m2/deploy-settings.xml
-Dsettings.security=/home/[YYYY]/.m2/master-settings.xml
當我嘗試上述配置時,它失敗了。 無法將修改后的POM文件提交給SVN。 為了幫助調試此問題,我設置了以下環境變量:
SVN_SSH="ssh -vvv"
當我這樣做時,我在調試語句中看到使用<server>
標記中定義的[XXXX]
用戶名以外的用戶名的身份驗證失敗過多。
因此,我嘗試在命令行中指定用戶名:
--batch-mode -Dusername=[XXXX] release:clean release:prepare release:perform...
那沒用。
因此,然后我嘗試在POM中指定用戶名:
scm:svn:svn+ssh://[XXXX]@my.server.org/data1/svns_zzzz/zzzz/path/to/the/project/trunk
那也不起作用。
要調試並驗證我的[XXXX]
用戶名和/home/[YYYY]/.ssh/id_rsa
鍵確實起作用,我將它們添加到了環境變量中:
SVN_SSH="ssh -vvv -l [XXXX] -i /home/[YYYY]/.ssh/id_rsa"
像這樣設置環境變量后,它就起作用了。 該發行插件能夠將修改后的POM文件成功提交到SVN。 因此,我知道用戶名和密碼有效。
所以現在的問題是我的Maven配置出了什么問題? 設置SVN_SSH環境變量有助於診斷問題,並提供了一種解決方法,但我不想將其作為長期解決方案。
有什么想法嗎?
發行插件會分叉構建,並且默認情況下不會將您在命令行上提供的參數傳遞給派生進程。 嘗試添加以下內容: -Darguments="-s /home/[YYYY]/.m2/deploy-settings.xml -Dsettings.security=/home/[YYYY]/.m2/master-settings.xml"
(請注意雙引號)到當前命令行。 這應將更改傳遞給分叉的過程。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.