1

これは私の最初のブログまたはクエリです。私はTFS管理者の役割とsonarqubeツールに非常に慣れていません。

私たちのプロジェクトでは TFS 2013 を ALM として使用しています。このプロジェクトは .Net アプリケーション (.NET の新機能) に基づいています。

クライアントの要件に従って、「SonarQube 5.2」をデフォルト テンプレートの代わりにカスタマイズされたビルド プロセス テンプレートと統合しようとしています。

「ABCサーバー」に「SonarQube 5.2」をインストールし、「TFSサーバー/ビルドエージェント」を「XYZ」にインストールしました。MSBuild 2.1 用の SonarQube スキャナーを XYZ サーバーにインストールし、それに応じて環境変数と sonarqube ランナー xml を更新しました。

標準のリンクによると、私はデフォルトのテンプレートを使用していません:- http://docs.sonarqube.org/display/SCAN/From+Team+Foundation+Server+2013 と pre/ を持たないカスタマイズされたビルドテンプレートを使用していますビルド後の引数オプション。

そこで、カスタマイズされたビルド プロセス テンプレートを編集し、ビルド前/後のスクリプト アクティビティ用のフックを追加し、前述のリンクと同様のプロパティを更新しました:- http://www.colinsalmcorner.com/post/build-script-hooks-for- tfs-2012-ビルド

注:上記のリンクに従って、MSBuild.SonarQube.Runner.exe を実行したいだけの powershell スクリプトを実行していないため、プロセス テンプレートの「チャレンジ 2 – 環境変数」の部分は更新しませんでした。

カスタマイズされたプロセス テンプレート内で次のアクティビティとプロパティを使用しました (上記のリンクを参照)。

*ConvertWorkspaceItem アクティビティでは、次のプロパティを設定します。

• DisplayName: “Get pre-build script local path”
• Input: PreBuildScriptPath
• Result: preBuildScriptLocalPath
• Workspace: Workspace

InvokeProcess アクティビティで次のプロパティを設定します。

• Arguments: String.Format(" ""& '{0}' {1}"" ", prebuildScriptLocalPath, PreBuildScriptArgs)
• DisplayName: “Run pre-build script”
• FileName: “PowerShell”
• Working Directory: SourcesDirectory*

注:ビルド後のスクリプトについても同じことが行われます

続いて、プロセス テンプレートの「Try、Compile、および Test」アクティビティの下に、これらのスクリプト前後のアクティビティを配置しました。

カスタマイズされたプロセス テンプレートを使用している MS ビルド定義では、ビルド プロセス パラメーター (XYZ サーバー上の runner.exe の場所/パス) に以下の値を設定しています。

ビルド前のスクリプト パス: C:\SonarQube\bin\MSBuild.SonarQube.Runner.exe

ビルド前のスクリプト引数: begin /n: /v:< プロジェクト バージョン #> /k:

ビルド後のスクリプト パス: C:\SonarQube\bin\MSBuild.SonarQube.Runner.exe

ビルド後のスクリプト引数: end

しかし、これらすべての変更の後、私のビルドは部分的に成功し、sonarqube の統合は次のエラーで失敗しました:

*SonarQube MSBuild の統合に失敗しました: SonarQube は、プロジェクトに関する必要な情報を収集できませんでした。

考えられる原因:

  1. プロジェクトがビルドされていません - プロジェクトは開始ステップと終了ステップの間にビルドする必要があります

  2. プロジェクトのビルドに、サポートされていないバージョンの MSBuild が使用されています。現在、MSBuild 12.0 以上がサポートされています

  3. begin、build、または end ステップのすべてが同じフォルダーから起動されていない*

: XYZ サーバー (TFS ビルド サーバー) には MSBuild 12.0 があり、".sonarqube" フォルダーが同じディレクトリ内に作成されるため、SourcesDirectory の下でビルドが行われます。

また、XYZ サーバーのコマンド プロンプト (SourceDirectory の場所または ApplicationName.sln が利用可能な場所) で、次の sonarqube コマンドを実行したところ、分析が成功し、Sonarqube ダッシュボードにレポートが生成されました。

- MSBuild.SonarQube.Runner begin /n:<project name>  /v:< project version #>  /k: <project key>
- "C:\Program Files (x86)\MSBuild\12.0\Bin\Msbuild.exe" "ApplicationName.sln" /p:Configuration=Debug /p:Platform="Any CPU"
- MSBuild.SonarQube.Runner end

親切にこれを行ってください。誰かが私を導き、これを解決するための具体的な説明を提供してくれると、大きな助けになります.

他に情報が必要な場合はお知らせください。

4

2 に答える 2

0

/n:/k:引数を指定してみてください:

/k:"ビルド定義が関連する SonarQube プロジェクトのプロジェクト キー"

/n:"SonarQube プロジェクトのプロジェクト名"

また、ビルド後のスクリプト パスとビルド後のスクリプト引数の代わりに、Post-test script pathを へのフル パスに設定し、 を にMSBuild.SonarQube.Runner.exe設定してみPost-test script argumentsてくださいend

以下のスクリーンショットを確認してください。

ここに画像の説明を入力

于 2016-09-13T06:56:10.667 に答える