3

我正在我的项目中实现 Maven 发布插件来自动化我们的发布过程。但是release-prepare任务无法签入代码并出现此错误

authorization failed: Could not authenticate to server: rejected Basic challenge

我尝试了http://mszalbach.blogspot.in/2011/02/maven-release-plugin-and-commit_05.html中提到的所有步骤,但都没有奏效。

我能够通过命令行成功运行所有 svn 命令。

我很确定我的 svn url 很好,因为我可以在同一个 pom 中使用 maven scm 插件检查代码。

关于如何解决这个问题的任何建议?

编辑:

我刚刚意识到 release:prepare 使用缓存的用户名/密码成功运行。但是如果我给同一个用户,-Dusername=testUser -Dpassword=passwd那么它就会失败。凭据是正确的。传递参数时我错过了什么吗?

编辑2:

我发现了这个问题,我的密码以$sign 开头,而 maven 没有正确解析它,这就是这个问题出现的原因。如何处理运行 maven 命令的密码中的特殊字符?

4

2 回答 2

3

我在命令中遇到了类似的问题,mvn --encrypt-password其密码包含$. 转义作为解决方案出现:

而不是mvn --encrypt-password pa$$word我曾经mvn --encrypt-password pa\$\$word让它工作。

要确定您的操作系统如何处理特殊字符,请键入echo pa$$word.

于 2020-11-25T07:43:02.593 回答
2

First, add a server element to your ${user.home}/.m2/settings.xml file.

<server>
    <id>your.subversion.host</id>
    <username>yourUserName</username>
    <password>yourPassword</password>
</server>
  • If you make the id the subversion host (e.g. subversion.mycompany.com) then this set up will work with both the maven-release-plugin and the maven-scm-plugin.
  • You may encrypt your password following the directions.

Then, add the following to the POM. (Tip: we have this in our corporate parent POM.)

<project>
   ...
    <properties>
      <project.scm.id>your.subversion.host<project.scm.id>
    </properties>
</project>

References: maven-release-plugin FAQ and Maven settings.xml configuration.

于 2013-09-05T16:14:41.470 回答