繁体   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