我使用的是maven-release-plugin:2.5.1。我需要將其配置爲使用公鑰/私鑰身份驗證連接到SVN。在嘗試與SVN進行SSH連接時,我在配置中使用正確的用戶名時遇到問題。未使用配置用戶名的Maven發行版插件
我的部署-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環境變量有助於診斷問題,並提供解決方法,但我不想將其作爲長期解決方案。
有什麼想法?
[documentation](http://maven.apache.org/maven-release/maven-release-plugin/faq.html#credentials)表示您需要添加屬性'project.scm.id'包含您的''配置的'id'。你嘗試過嗎? –
感謝您的評論。不幸的是,這並沒有奏效。 –