声纳奇怪的编码问题?

时间:2016-10-13 20:17:26

标签: sonarqube sonarqube-scan

我最近推出了Jenkins的更新,以便在SonarQube 5.6版本上启动声纳扫描仪。我没有使用插件,只是来自sonar-project.properties文件所在目录的声纳扫描器的命令行调用。

到目前为止,所有开发人员都遵循相同的步骤,并为其服务配置属性文件,并且除少数情况外工作正常。当出现错误消息时,两位开发人员遇到了一个奇怪的问题:

"Caused by: Not authorized. Analyzing this project requires to be authenticated. Please provide the values of the properties sonar.login and sonar.password."

我认为这很奇怪,因为如果我在说明中使用的身份验证令牌错误,其他开发人员可能会遇到同样的问题。我将工作副本与第一个开发人员的版本进行了比较,唯一的区别是项目特定的东西,如DLL名称,版本等......我将在下面提供一个模板。在文件看起来很好的情况下,我保存了损坏的副本,并将另一个工作副本的内容复制到损坏的副本中。然后我更改了项目特定的属性,并提交到subversion。声纳扫描成功!

出于好奇,我然后逐行比较旧的破碎文件和新的工作副本。他们在任何角色之间绝对没有区别。然后我认为这必须是一个编码问题。我通过添加声纳编码属性进行了快速测试,将其提交回来并且扫描失败。所以我接着改回工作副本,然后继续。

第二天,第二位开发人员带着同样的问题来找我。然后我尝试了相同的前面步骤,我复制了工作副本的内容,并粘贴到新的,然后重新提交。但是这次解决方法不起作用。实际上,我尝试了大约5个不同的工作副本进行粘贴,并且它们都因为授权错误而失败。我知道属性文件与令牌等完全正确。

我不知道该做什么,我没有在服务器上遇到任何向我提供任何好信息的日志,除非它们是我不知道的日志。

    # Token
    sonar.login=SOMESECRETTOKEN

    # Unique project key for sonar
    sonar.projectKey=SOMESERVICE

    # UI Settings for sonar
    sonar.projectName=SOMESERVICE
    sonar.projectVersion=SOMEVERSION

    # Path to source, if not set it searches from this
    # file's directory
    sonar.sources=.

    # Encoding of the source code. Default is default system encoding
    #sonar.sourceEncoding=UTF-8

    #Cop
    sonar.stylecop.projectFilePath=./SOMEPROJ.csproj
    sonar.cs.fxcop.assembly=./bin/Release/SOMEDLL.dll
    sonar.cs.fxcop.fxCopCmdPath=C:/Program Files (x86)/Microsoft Fxcop 10.0/FxCopCmd.exe
    sonar.fxcop.assemblies=./bin/Release/SOMEDLL.dll

感谢任何帮助或指示,谢谢!

2 个答案:

答案 0 :(得分:3)

这不是关于您的编码或文件内容,而是关于权限。运行扫描的用户对相关项目没有执行分析权限。

要使用第一个分析创建新项目,用户还必须具有“创建项目”权限。

答案 1 :(得分:1)

当遇到这个问题时,我在Notepad ++中加载了该文件,该文件告诉我文件是在一些奇怪的编码下保存的,Visual Studio提供了文本文件。我通过将编码切换为UTF-8来解决问题。这可能应该在声纳中更好地处理!