3

現在、.NET アプリケーションでの SonarQube/SonarLint の使用を評価中です。私たちはこれまで見てきたことに非常に満足しています (そして、ところで、SonarQube をここまで持ってきたことを称賛します - 私は数年前に私の博士号プロジェクトで SonarQube を使用しましたが、それ以来大幅に改善されました!)。

ただし、少し驚くべきことが 1 つあります。SonarLint インスタンスを SonarQube サーバーに接続し (問題なく動作しました)、バインドされたプロジェクトの同期を開始すると、SonarLint は nuget パッケージのダウンロードを開始し (これは予想通りでした)、1 つまたは 1 つを作成しました。ソリューションのプロジェクトごとに 2 つの .ruleset ファイル (SonarQube/<solution name>CSharp.rulesetソリューション全体のルールセットであると想定しているファイルに加えて)。

私が期待し、好むのは、完全なソリューションに対して有効な単一のルールセットのみです (そして、これが理にかなっているプロジェクト (テスト プロジェクトなど) では、そのルールセットをオーバーライドするオプションがある可能性があります)。

この動作はまったく可能ですか?つまり、何か見逃していませんか? ドキュメントは、SonarLint が欠けていると私がこれまでに特定した唯一の領域です。

4

2 に答える 2

2

次のブログ投稿で、いくつかのルールセットを持つことの利点についてもう少し詳しく説明しました。

ソリューションの品質の定義を強化する場合に備えてカスタマイズ可能なプロジェクトごとに 1 つのルールセットと、SonarQube 品質プロファイル (SonarQube のガバナンスへの準拠) に対応するルールセットがあります。

于 2016-04-19T13:18:04.390 に答える
1

これらの追加のルールセット ファイルが作成されるのには理由があります。実際には複数あります:

  • これは、すべてのプロジェクトが従わなければならないベースラインを設定できるようにするためですが、特定の種類のコードを含むプロジェクトには追加のルールを有効にします。Unittest または Windows サービス プロジェクトでは意味をなさない、Sharepoint プロジェクトに固有のいくつかの MSOCAF ルールが有効になっている可能性があります。

  • たとえば、プロジェクトの技術的負債を修正する場合、ソリューション全体のベースラインを設定し、個々のプロジェクトのルールセットを徐々に強化して、クリーンアップ作業を特定のプロジェクトに集中させることができます。ソリューション内のすべてのプロジェクトで特定のルールまたは一連のルールを同時にクリアする必要はありません。

SonarQube と同期するたびに、プロジェクト ルールセット ファイルの 1 つが上書きされます。もう 1 つは、残したままになります。カスタマイズを保存できるようにし、変更を SonarQube ベースラインに安全に同期できるようにします。

私の記憶が正しければ、ソリューション ルールセットは、カスタマイズを保存するルールセットと同様に、プロジェクト ルールセットに含まれています。現在、どのルールセット ファイル サーバーの目的を検証するための SonarQube サーバーは手元にありませんが、これがその背後にある理由です。

于 2016-04-08T11:42:52.457 に答える