2017-02-07 31 views
0

我正在使用Jenkins作業來構建.Net項目。我已經添加了聲納分析。Sonar Buildbreaker跳過失敗生成

D:\ Temp \ tools \ Scanner_MSBuild-2.2 \ MSBuild.SonarQube.Runner.exe begin/k:myproj/n:myproj-full /v:1.0.0/s:D:\Temp\SonarQube.Analysis .xml

我已經更新了「SonarQube.Analysis.xml」和所需的聲納url和登錄憑證。但它失敗並出現以下錯誤:

預處理已啓動。 準備工作目錄... 用於MSBuild 2.2的SonarQube掃描儀 09:07:00.437更新構建集成目標... 09:07:00.451獲取分析配置設置... 09:07:01.239找不到文件在SonarQube服務器上。 URL:https:/// api/qualityprofiles/search?defaults = true 09:07:01.239預處理失敗。退出代碼:1

我嘗試以下:

d:\ TEMP \工具\ Scanner_MSBuild-2.2 \ MSBuild.SonarQube.Runner.exe開始/ K:的Myproj/N:的Myproj滿/v:1.0。 0 /s:D:\Temp\SonarQube.Analysis.xml -Dsonar.buildbreaker.skip = true

但它引發錯誤,即-Dsonar.buildbreaker.skip = true是無法識別的命令。默認情況下,buildbreaker設置爲false,並且我無法通過命令行將其設置爲true。我使用的SonarQube版本低於5.2。

我該如何解決這個問題?

謝謝

+0

您是否使用Jenkins Begin Analysis和End Analysis構建步驟? –

+0

我是。它也拋出錯誤,「-Dsonar.buildbreaker.skip = true」無法識別。 Jenkins Begin Analysis插件自動接受此參數並拋出錯誤,表示Dsonar.buildbreaker.skip = true未被識別。我認爲這是因爲Sonar版本低於5.2。有沒有辦法通過命令行,它可以理解「Dsonar.buildbreaker.skip」選項? – Raji

回答

0

如果您正在使用的「開始分析」和「最終分析」構建步驟,然後配置在SonarQube.Analysis.xml您的服務器URL不會讓你遠(如你學到了)。

相反,您需要將服務器在全局級別的位置配置爲described in the docs。簡述:

  • 管理詹金斯>配置系統> SonarQube配置
  • 在您的服務器信息添加SonarQube
  • 填充。

然後仔細檢查該服務器實例是在構建步驟中選擇(如果你只有一臺服務器配置,構建步驟將默認爲它)。並分析。

+0

謝謝Ann的迴應。如上所述,我已經在「Manage Jenkins」選項中配置了SonarQube(並且也在鏈接中提到)。我可以在「開始分析」插件的下拉菜單中看到url。我還填寫了其他值(項目密鑰,名稱,版本)。在觸發工作時,它會引發以下錯誤: SonarQube Scanner for MSBuild 2.2 04:39:10.325無法識別的命令行參數:-Dsonar。buildbreaker.skip = true – Raji

+0

我在'Manage Jenkins'的SonarQube配置選項中看到'advanced'選項,因爲設置了其他參數「-Dsonar.buildbreaker.skip = true」,並且從那裏取這個值。因爲它也是爲其他基於Java的項目設置的,所以我無法更改它。我現在如何繼續? – Raji

+0

如果我使用Jenkins插件做開始分析,那麼它會拋出錯誤,說明Dsonar.buildbreaker.skip = true無法識別。如果我嘗試使用命令行方式(在作業中使用'Windows PowerShell'插件),我得到以下錯誤: 在SonarQube服務器上找不到文件。 URL:https://mysonar.dummy.com/prod/api/qualityprofiles/search?defaults=true 04:39:09.45預處理失敗。退出代碼:1 – Raji