声纳奇怪的编码问题?

Sonar Strange Encoding Issue?

我最近推出了 Jenkins 更新,以在 SonarQube 5.6 版上启动声纳扫描仪。我没有使用插件,只是从声纳-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 名称、版本等……我将在下面提供一个模板。文件看起来不错,我保存了损坏的副本,并将另一个工作副本的 contents 复制到损坏的副本中。然后我更改了项目的特定属性,并提交到颠覆中。声纳扫描成功!

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

第二天,第二位开发人员带着完全相同的问题来找我。然后我尝试了之前相同的步骤,我复制了一个工作副本的内容,并粘贴到新的副本中,然后重新提交。但是这次解决方法没有奏效。事实上,我尝试了大约 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

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

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

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

当遇到这个问题时,我在 Notepad++ 中加载了文件,它告诉我文件是以某种奇怪的编码保存的 visual studio 给出了文本文件。我通过将编码切换为 UTF-8 解决了这个问题。这可能应该在 Sonar 中得到更好的处理!