SonarQube.Runner与C#插件不兼容

时间:2015-07-24 14:09:45

标签: c# sonarqube sonarqube5.1 sonarqube-4.5

我正在尝试按照此处的说明获取以下Sonar C#插件:http://docs.sonarqube.org/display/PLUG/C%23+Plugin

  

服务器上安装的C#插件与MSBuild.SonarQu不兼容   be.Runner.exe - 检查兼容性矩阵或获取最新版本    对彼此而言。   预处理失败。退出代码:1"

运行步骤6)a:

MSBuild.SonarQube.Runner.exe begin /k:"sonarqube_project_key" 
/n:"sonarqube_project_name" /v:"sonarqube_project_version"
  • 我尝试过SonarQube版本4.5.4(LTS)和5.1.1
  • VS2012的开发人员命令提示符
  • 我安装了java(oracle):jdk-8u51-windows-x64.exe
  • Microsoft(R)Build Engine版本4.0.30319.34209
  • 在Windows Server 2012上运行

有关如何解决此问题的任何想法?

感谢

来自MrFox:

我已经为这个问题添加了奖励,并在此处添加了有关此问题的问题:

  1. 我是否需要制作一个SonarQube项目,或者#SiearQube_project_key"意味着我希望SonarQube扫描的视觉工作室项目密钥。
  2. 即使是“项目”这个术语。使用了很多我认为这与项目的开源定义有关。视觉工作室的定义并不是解决方案的一部分。
  3. " sonarqube_project_version"的含义究竟是什么?我试过6.5(SonarQube版本),6.4.1(SonarQubeC#plugin),1.0.1(MSBuild.SonarQube.Runner.exe版本)
  4. 我在C#插件网站上使用了作为示例提供的项目密钥:

      

    MSBuild.SonarQube.Runner.exe开始/k:"org.sonarqube:sonarqube-scanner-msbuild" /n:"Kadaster.Agris" /v:"1.0.1"

    我已就这些问题尝试了几种排列方式 我想使用Analysis Bootstrapper for Visual Studio,但无法下载或解释如何做到这一点。

    编辑:请求后输入整个错误消息。 Screenshot of console with error message 在文本中,这还包括我在目前给出的答案之后使用的命令:

    > D:\projects\agris\src>MSBuild.SonarQube.Runner.exe begin
    > /k:"org.sonarqube:Kadas ter_Agris" /n:"Kadaster_Agris" /v:"0.1"
    > Default properties file was found at
    > D:\Software\MSBuild.SonarQube.Runner.1.0.1\ SonarQube.Analysis.xml
    > Loading analysis properties from
    > D:\Software\MSBuild.SonarQube.Runner.1.0.1\Sona rQube.Analysis.xml
    > Pre-processing started. Preparing working directories... Checking for
    > updates... The C# plugin installed on the SonarQube server is not
    > compatible with the Sonar Qube analysis agent (i.e. the
    > MSBuild.SonarQube.Runner.exe, or the build automat ion task). Either
    > check the compatibility matrix or get the latest versions for both.
    > Pre-processing failed. Exit code: 1
    
    The first step is to do pre-processing:
    
    > D:\projects\agris\src>D:\Software\sonar-scanner-msbuild-3.0.2.656\MSBuild.SonarQ
    > ube.Runner.exe begin /k:"myCompanyHostedSonarQube:GMA_Kadaster_Agris"
    > /n:"Kadas ter_Agris" /v:"0.1" SonarQube Scanner for MSBuild 3.0.2
    > Default properties file was found at
    > D:\Software\sonar-scanner-msbuild-3.0.2.656 \SonarQube.Analysis.xml
    > Loading analysis properties from
    > D:\Software\sonar-scanner-msbuild-3.0.2.656\Son arQube.Analysis.xml
    > Pre-processing started. Preparing working directories... 09:08:16.861 
    > Updating build integration targets... 09:08:16.879  Fetching analysis
    > configuration settings... 09:08:17.971  Generating rulesets...
    > 09:08:17.993  Provisioning analyzer assemblies for cs... 09:08:17.994 
    > Installing required Roslyn analyzers... 09:08:18.507  Pre-processing
    > succeeded.
    

    然后必须重建项目 然后告诉SonarQube结束并将所有内容发送到服务器,最后一步失败:

    > Done Building Project "D:\projects\agris\src\Kadaster.Agris.sln"
    > (Rebuild targe t(s)).
    > 
    > 
    > Build succeeded.
    > 
    > "D:\projects\agris\src\Kadaster.Agris.sln" (Rebuild target) (1) ->
    > "D:\projects\agris\src\Kadaster.Agris.Web\Kadaster.Agris.Web.csproj.metaproj"
    > ( Rebuild target) (13) ->
    > "D:\projects\agris\src\Kadaster.Agris.Web\Kadaster.Agris.Web.csproj"
    > (Rebuild t arget) (14) -> (CoreCompile target) ->  
    > Controllers\OutputController.cs(48,30): warning CS0168: The variable
    > 'ex' is declared but never used
    > [D:\projects\agris\src\Kadaster.Agris.Web\Kadaster.Agri s.Web.csproj] 
    > Controllers\OutputController.cs(80,30): warning CS0168: The variable
    > 'ex' is declared but never used
    > [D:\projects\agris\src\Kadaster.Agris.Web\Kadaster.Agri s.Web.csproj] 
    > Controllers\OutputController.cs(166,30): warning CS0168: The variable
    > 'ex' is  declared but never used
    > [D:\projects\agris\src\Kadaster.Agris.Web\Kadaster.Agr is.Web.csproj]
    > 
    >     3 Warning(s)
    >     0 Error(s)
    > 
    > Time Elapsed 00:00:08.91
    > 
    > D:\projects\agris\src>D:\Software\sonar-scanner-msbuild-3.0.2.656\MSBuild.SonarQ
    > ube.Runner.exe end SonarQube Scanner for MSBuild 3.0.2 Default
    > properties file was found at
    > D:\Software\sonar-scanner-msbuild-3.0.2.656 \SonarQube.Analysis.xml
    > Loading analysis properties from
    > D:\Software\sonar-scanner-msbuild-3.0.2.656\Son arQube.Analysis.xml
    > Post-processing started. The SonarQube MSBuild integration failed:
    > SonarQube was unable to collect the re quired information about your
    > projects. Possible causes:
    >   1. The project has not been built - the project must be built in between the b egin and end steps
    >   2. An unsupported version of MSBuild has been used to build the project. Curre ntly MSBuild 14.0 upwards are supported
    >   3. The begin, build or end steps have not all been launched from the same fold er Generation of the sonar-properties file failed. Unable to
    > complete SonarQube ana lysis. 14:38:26.197  Creating a summary
    > markdown file... 14:38:26.2  Post-processing failed. Exit code: 1
    

    三个警告是关于未使用的异常变量。

1 个答案:

答案 0 :(得分:2)

  

我是否需要制作SonarQube项目或者#Son; SonarQube_project_key"意味着我希望SonarQube扫描的视觉工作室项目密钥。

/k:指定的密钥将用作在SonarQube服务器上标识项目的唯一键。 它可以是任何东西,它取决于你。 例如,常见的选择是Visual Studio中解决方案的名称。

/n:参数定义了在SonarQube上使用的显示名称。

/v:参数定义分析所代表的项目版本。 SonarQube的主要目的之一是跟踪所谓的泄漏期中的代码质量变化, 这是自上次发布以来的时间。 版本更改时,泄漏周期的指标会重置。 SonarQube不承担您项目的版本, 你明确告诉自己。

  

即使术语“项目”'使用了很多我认为这与项目的开源定义有关。视觉工作室的定义并不是解决方案的一部分。

术语'项目'在SonarQube文档中引用了SonarQube上的表示。在Visual Studio术语中,它对应于'解决方案'。您通常会为每个Visual Studio解决方案创建一个SonarQube项目。 这是您希望如何查看质量指标的问题。 在SonarQube中的一个仪表板下聚合所有Visual Studio项目的指标通常是有意义的。

  

我想在Visual Studio中使用Analysis Bootstrapper,但无法下载或解释如何完成。

那已经过时了。在撰写本文时,你不应再需要它了。

您似乎正在使用非常旧版本的Scanner for MSBuild。 你可以从这里下载最新版本, 试试这个:

https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner+for+MSBuild

但请注意,当前版本的Scanner for MSBuild需要MSBuild版本14或更高版本。 这意味着您的项目需要使用Visual Studio 2015或更高版本构建。 如果您的项目使用旧版本, 你将不得不迁移它。