亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

目次
Sonarqubeとは何ですか?
SonarqubeをJavaプロジェクトに統(tǒng)合する方法は?
主要な品質(zhì)ルールとベストプラクティス
ヒント:一般的な落とし穴は避けてください
ホームページ Java &#&チュートリアル Javaコードの品質(zhì)とSonarqubeによる靜的分析

Javaコードの品質(zhì)とSonarqubeによる靜的分析

Jul 29, 2025 am 02:03 AM
java コードの品質(zhì)

Sonarqubeは、コードの欠陥、セキュリティの脆弱性、コード臭気、Javaなどの20以上の言語での重複コードを検出するために使用されるオープンソースコードの品質(zhì)管理プラットフォームであり、テストのカバレッジと複雑さを評(píng)価します。 1. Sonarqubeサーバーをインストールし、http:// localhost:9000にアクセスして、初期化を完了します。 2。Sonarscannerツールを構(gòu)成するか、Maven/Gradleプラグインを使用します。 3. Sonar-Project.Propertiesファイルをプロジェクトルートディレクトリに作成し、プロジェクト情報(bào)、ソースコードパス、コンパイル出力、およびテストレポートパスを指定します。 4. jacocoを使用してテストカバレッジレポートを生成し、mavenプラグインを介してprepare-agentとレポートの実行を構(gòu)成します。 5. MVN Clean Berify Sonar:SonarまたはSonar -Scannerコマンドを?qū)g行し、-dsonar.loginトークン認(rèn)証と組み合わせて分析結(jié)果を送信します。重要なルールには、空のキャッチブロックの避け、円の複雑さの制御、重複コードの排除、80%以上のテストカバレッジの確保、セキュリティホットスポットの処理が含まれます。質(zhì)の高いアクセス制御は、カスタム品質(zhì)のしきい値(80%以上、深刻な問題がゼロ、重複コード

Javaコードの品質(zhì)とSonarqubeによる靜的分析

Javaコードの品質(zhì)と靜的分析は、プロジェクトの長期的な保守性と安定性を確保するための重要なリンクであり、Sonarqubeは現(xiàn)在最も人気のあるコード品質(zhì)管理プラットフォームの1つです。開発チームは、潛在的な欠陥、コード臭気、セキュリティの脆弱性、およびコードの重複コードを自動(dòng)的に検出し、それによりコードの品質(zhì)を継続的に改善するのに役立ちます。

Javaコードの品質(zhì)とSonarqubeによる靜的分析

Sonarqubeとは何ですか?

Sonarqubeは、コード品質(zhì)を継続的に検査するためのオープンソースプラットフォームです。 Javaを含む20以上のプログラミング言語をサポートし、ソースコードを靜的に分析することにより、次の次元に関する洞察を提供します。

  • バグ検出:ランタイムエラーを引き起こす可能性のあるコードの問題が見つかりました。
  • 脆弱性の識(shí)別:SQLインジェクション、ハードコーディングされたパスワードなどのセキュリティ問題を検出します。
  • コードの臭い:構(gòu)造が悪く、維持が困難なコードを指摘しています。
  • 繰り返しコード:メンテナンスコストを削減するために、重複するコードブロックを特定します。
  • テストカバレッジ:単體テストレポートを統(tǒng)合して、コードカバレッジを評(píng)価します。
  • 複雑さ分析:クラスと方法の円の複雑さを測(cè)定して、過度の複雑さを避けます。

SonarqubeをJavaプロジェクトに統(tǒng)合する方法は?

SonarqubeをJavaプロジェクトに適用するには、通常、次の手順が必要です。

Javaコードの品質(zhì)とSonarqubeによる靜的分析
  1. Sonarqubeサーバーをインストールして起動(dòng)します

    • Sonarqube(Community Edition for free)をダウンロードし、サービスを開始します(デフォルトポート9000)。
    • http://localhost:9000にアクセスして、初期構(gòu)成を完了します。
  2. Sonarscannerを構(gòu)成します

    Javaコードの品質(zhì)とSonarqubeによる靜的分析
    • Sonarscannerは、分析を?qū)g行するためのコマンドラインツールであり、ダウンロードしてシステムパスに構(gòu)成する必要があります。
    • または、Maven/Gradleプラグインを使用して、より簡単に統(tǒng)合します。
  3. プロジェクトに構(gòu)成ファイルを追加します

    • sonar-project.propertiesファイルをプロジェクトルートディレクトリ、コンテンツの例:

       sonar.projectkey = my-java-project
      sonar.projectname =私のJavaプロジェクト
      sonar.projectversion = 1.0
      
      sonar.sources = src/main/java
      sonar.tests = src/test/java
      sonar.java.binaries =ターゲット/クラス
      sonar.java.test.binaries =ターゲット/テストクラス
      
      Sonar.junit.ReportPaths =ターゲット/SureFire-Reports
      Sonar.jacoco.ReportPaths =ターゲット/jacoco.exec
  4. コードカバレッジレポートを生成する(Jacocoが推奨)

    • Mavenを使用している場(chǎng)合は、Jacocoプラグインを追加します。

       <プラグイン>
          <GroupId> org.jacoco </groupId>
          <artifactid> jacoco-maven-plugin </artifactid>
          <バージョン> 0.8.11 </version>
          <実行>
              <実行>
                  <ゴール>
                      <goal> prepare-agent </goal>
                  </目標(biāo)>
              </実行>
              <実行>
                  <id>レポート</id>
                  <フェーズ>テスト</phase>
                  <ゴール>
                      <ゴール>レポート</goal>
                  </目標(biāo)>
              </実行>
          </実行>
      </プラグイン>
  5. ランニング分析

    • コマンドを?qū)g行します。
       MVNクリーン検証ソナー:ソナー\
        -dsonar.login = your-token \
        -dsonar.host.url = http:// localhost:9000
    • またはSonarscannerを使用してください:
       Sonar-Scanner -dsonar.login = Your-Token

注:Plantextのユーザー名とパスワードではなく、Sonarqubeによって生成されたユーザートークンを認(rèn)証用に使用することをお?jiǎng)幛幛筏蓼埂?/p>

主要な品質(zhì)ルールとベストプラクティス

Sonarqubeには何百ものルールが組み込まれていますが、Javaプロジェクトで特に注目に値するルールがあります。

  • 空のキャッチブロックを避けてください
    catch(Exception e) {}は例外をマスクし、少なくともログログが必要です。

  • 円の複雑さを減らす(環(huán)狀複雑さ)
    この方法は複雑すぎる(デフォルト> 10アラーム)、テストとメンテナンスが困難であり、ロジックを分割する必要があります。

  • 重複コードを削除します
    Sonarqubeは同様のコードブロックをマークし、パブリックメソッドまたはクラスを抽出するように促します。

  • ユニットテストカバレッジ
    を確認(rèn)してください
    最小カバレッジのしきい値(行カバレッジ≥80%など)を設(shè)定し、CIプロセスで必須のチェックにすることをお?jiǎng)幛幛筏蓼埂?/p>

  • セキュリティホットスポット
    ハードコーディングされた資格情報(bào)、安全でない亂數(shù)生成( Math.random()は安全なシナリオで使用されます)など。

たとえば、Sonarqubeインターフェイスで品質(zhì)のしきい値をカスタマイズできます。

  • 新しいコードのカバレッジ率は80%以上です
  • ゼロ深刻な(ブロッカー)問題
  • コードの繰り返し行の數(shù)

これらのルールは、JenkinsまたはGitHubアクションでのSonarqubeスキャンの統(tǒng)合、失敗した場(chǎng)合にマージをブロックするなど、プロジェクトの継続的統(tǒng)合(CI)プロセスで実施できます。

ヒント:一般的な落とし穴は避けてください

  • コンパイルされたClassPath構(gòu)成エラー
    sonar.java.binaries正しいコンパイルされた出力ディレクトリ( target/classesなど)を指していることを確認(rèn)してください。そうしないと、いくつかのルールが有効になりません。

  • テストレポートパスは間違っています
    sonar.junit.reportPathsおよびsonar.jacoco.reportPathsが正しく構(gòu)成されていない場(chǎng)合、カバレッジは0として表示されます。

  • 増分分析と完全な分析
    Sonarqubeはデフォルトで完全な分析を?qū)g行します。変更コードのみを分析する場(chǎng)合は、 sonar-scm-provider-gitプラグインを使用して協(xié)力できます。

  • 中國の注釈はコーディングの問題につながります
    ソースコードファイルがUTF-8エンコードであることを確認(rèn)して、文字セットの問題による分析の障害を回避します。

基本的にそれだけです。 Sonarqubeを強(qiáng)力にしているのは、コードの品質(zhì)を測(cè)定可能で追跡可能なプロセスに変えることです。 Javaプロジェクトの場(chǎng)合、Sonarqubeの統(tǒng)合は複雑ではありませんが、長期的な利點(diǎn)は非常に重要です - オンラインバグが少なく、保守性が向上し、より効率的なチームワークです。

以上がJavaコードの品質(zhì)とSonarqubeによる靜的分析の詳細(xì)內(nèi)容です。詳細(xì)については、PHP 中國語 Web サイトの他の関連記事を參照してください。

このウェブサイトの聲明
この記事の內(nèi)容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當(dāng)する法的責(zé)任を負(fù)いません。盜作または侵害の疑いのあるコンテンツを見つけた場(chǎng)合は、admin@php.cn までご連絡(luò)ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫像を無料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード寫真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

寫真から衣服を削除するオンライン AI ツール。

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中國語版

SublimeText3 中國語版

中國語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強(qiáng)力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Jakarta EEとJavaにRESTFUL APIを構(gòu)築します Jakarta EEとJavaにRESTFUL APIを構(gòu)築します Jul 30, 2025 am 03:05 AM

setupamaven/gradleprojectwithjax-rsdependencieslikejersey; 2.createarestresourceingnotationssuchas@pathand@get; 3.configuretheapplicationviaapplicationubclassorweb.xml;

Javaプロジェクト管理のためのMavenの開発者ガイド Javaプロジェクト管理のためのMavenの開発者ガイド Jul 30, 2025 am 02:41 AM

Mavenは、Javaプロジェクト管理と建設(shè)の標(biāo)準(zhǔn)ツールです。答えは、POM.xmlを使用してプロジェクト構(gòu)造、依存関係管理、建設(shè)ライフサイクルの自動(dòng)化、プラグイン拡張機(jī)能を標(biāo)準(zhǔn)化するという事実にあります。 1. pom.xmlを使用して、GroupID、artifactid、バージョン、依存関係を定義します。 2。MVNCLEAN、コンパイル、テスト、パッケージ、インストール、展開などのマスターコアコマンド。 3.依存関係管理と除外を使用して、依存関係バージョンと競合を管理します。 4.マルチモジュールプロジェクト構(gòu)造を通じて大規(guī)模なアプリケーションを整理し、親POMによって均一に管理されます。 5。

ハッシュにJava Messagedigestを使用する方法(MD5、SHA-256)? ハッシュにJava Messagedigestを使用する方法(MD5、SHA-256)? Jul 30, 2025 am 02:58 AM

Javaを使用してハッシュ値を生成するには、Messaged Gigestクラスを通じて実裝できます。 1. MD5やSHA-256などの指定されたアルゴリズムのインスタンスを取得します。 2。.update()メソッドを呼び出して、暗號(hào)化されるデータを渡します。 3. .digest()メソッドを呼び出して、ハッシュバイト配列を取得します。 4.バイト配列を読み取りのために16進(jìn)列に変換します。大きなファイルなどの入力については、チャンクで読み取り、.update()を複數(shù)回呼び出します。セキュリティを確保するために、MD5またはSHA-1の代わりにSHA-256を使用することをお?jiǎng)幛幛筏蓼埂?/p>

CSSダークモードのトグル例 CSSダークモードのトグル例 Jul 30, 2025 am 05:28 AM

まず、JavaScriptを使用して、ユーザーシステムの設(shè)定とローカルに保存されたテーマ設(shè)定を取得し、ページテーマを初期化します。 1. HTML構(gòu)造には、トピックの切り替えをトリガーするボタンが含まれています。 2。CSSの使用:rootは明るいテーマ変數(shù)を定義し、.dark-modeクラスは暗いテーマ変數(shù)を定義し、これらの変數(shù)をvar()を介して適用します。 3. JavaScript検出は、カラーのスchemeを好み、LocalStorageを読み取り、最初のテーマを決定します。 4.ボタンをクリックするときにHTML要素のダークモードクラスを切り替え、現(xiàn)在の狀態(tài)をLocalStorageに保存します。 5.すべての色の変更には、ユーザーを強(qiáng)化するために0.3秒の移行アニメーションが伴います

CSSドロップダウンメニューの例 CSSドロップダウンメニューの例 Jul 30, 2025 am 05:36 AM

はい、一般的なCSSドロップダウンメニューは、JavaScriptなしで純粋なHTMLおよびCSSを介して実裝できます。 1.ネストされたULとLIを使用して、メニュー構(gòu)造を構(gòu)築します。 2。:Hover Pseudo-Classを使用して、プルダウンコンテンツのディスプレイと非表示を制御します。 3。位置の設(shè)定:親liの親relative、およびサブメニューは位置を使用して配置されます:Absolute; 4. submenuは表示されます:なし、それは表示されます:ホバリング時(shí)にブロック。 5.マルチレベルのプルダウンは、ネスティングを通じて、移行と組み合わせ、フェードインアニメーションを追加し、メディアクエリを備えたモバイルターミナルに適合させることができます。ソリューション全體はシンプルで、JavaScriptサポートを必要としません。これは大規(guī)模に適しています

vscode settings.jsonの場(chǎng)所 vscode settings.jsonの場(chǎng)所 Aug 01, 2025 am 06:12 AM

settings.jsonファイルは、ユーザーレベルまたはワークスペースレベルのパスにあり、VSCODE設(shè)定のカスタマイズに使用されます。 1。ユーザーレベルのパス:WindowsはC:\ users \\ appdata \ roaming \ code \ user \ settings.json、macos is/users //settings.json、linux is /home/.config/code/user/settings.json; 2。Workspace-Level Path:.vscode/settings Project Root Directoryの設(shè)定

Python Parse Date Stringの例 Python Parse Date Stringの例 Jul 30, 2025 am 03:32 AM

DateTime.Strtime()を使用して、日付文字列をDateTimeオブジェクトに変換します。 1?;镜膜适褂梅ǎ骸?023-10-05」は、「%y-%m-%d」を介したdatetimeオブジェクトとしての解析です。 2?!福/%d/%y」などの複數(shù)の形式をサポートして、アメリカの日付を解析する、「%d/%m/%y」を解析するために英國の日付を解析する、「%b%d、%y%i:%m%p」 3. dateutil.parser.parse()を使用して、不明な形式を自動(dòng)的に推測(cè)します。 4。.dを使用してください

Sublime Text Auto Close HTMLタグ Sublime Text Auto Close HTMLタグ Jul 30, 2025 am 02:41 AM

エメットプラグインをインストールすると、タグのインテリジェントな自動(dòng)閉鎖を?qū)g現(xiàn)し、略語構(gòu)文をサポートできます。 2.「auto_match_enabled」を有効にする:sublimeが自動(dòng)的にシンプルなタグを自動(dòng)的に完了できるようにする。 3。ALTを使用します。 (Win)またはCtrlシフト。 (Mac)現(xiàn)在のタグを手動(dòng)で閉じるためのショートカットキー - 日常生活でエメットを使用することをお?jiǎng)幛幛筏蓼埂a嵴撙?つの方法を組み合わせることができます。これは効率的で簡単に設(shè)定できます。

See all articles