在 Jenkins 1.620 SonarQube 5.1.1 中运行声纳分析时 SVN 身份验证失败

2022-09-04 07:32:22

我有一个java maven Web项目,我也有Jenkins 1.620SonarQube 5.1.1.

我在 jenkins 中添加了一个 maven post action,SonarQube 将 jdk 设置为 7u79,与项目使用的相同。

当我运行 jenkins 任务时,我在控制台上出现下一个错误:

[ERROR] Failed to execute goal org.codehaus.mojo:sonar-maven-plugin:2.6:sonar (default-cli) on project *****: The svn blame command [svn blame --xml --non-interactive -x -w src/main/java/*****.java] failed: svn: PROPFIND request failed on '/*****/trunk/src/main/java/*****.java'
[ERROR] svn: PROPFIND of '/*****/trunk/src/main/java/*****.java': authorization failed (http://*****.*****.*****)
[ERROR] -> [Help 1]

似乎我必须将登录信息放在 Jenkins 中 Maven 项目的任务中,但我没有找到任何有关此的文档,我不知道它是否应该是 as 或 附加属性,以及语法。SVNSonarQubeMAVEN_OPTS

提前致谢。


答案 1

您可以在SonarQube服务器上配置它:

全局:→ SVN 的常规→ SCM →设置

每个项目:SCM → SVN →常规设置→


答案 2

如果它可能有帮助,这是一种基于Google组中的此线程执行此操作的替代方法。

请注意,它肯定不如在SonarQube服务器中设置SVN用户和pwd安全,但它可能有助于临时解决方法:

在 Jenkins 作业>> SonarQube Scanner 生成步骤 >> 分析属性

设置以下两个属性:

sonar.svn.username=<SVN USERNAME>
sonar.svn.password.secured=<SVN PASSWORD>

请注意,密码实际上根本不安全,因为它没有加密。因此,一个不错的做法是在 Jenkins 的密码变量中设置它,并在属性值中传递此变量。这样,它至少是不可读的。sonar.svn.password.secured


推荐