簡體   English   中英

Maven版本插件未使用配置的用戶名

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM