Dockerはコード検出プラットフォームSonarQubeを構築し、Mavenプロジェクトのプロセスを検出します

Dockerはコード検出プラットフォームSonarQubeを構築し、Mavenプロジェクトのプロセスを検出します

1 はじめに

優れたコーディング習慣は優れたプログラマーが備えるべき資質ですが、コードの品質を保証するために人々の習慣や記憶に頼ることは必ずしも信頼できるものではありません。コンピュータ業界の人々は、人間が作ったものである限り、運用上のリスクが存在することを十分に認識しているはずです。この記事では、 Docker経由でコード検出プラットフォームSonarQubeを構築し、それを使用してmavenプロジェクトのコードを検出する方法について説明します。

2 DockerでSonarQubeをインストールする

2.1 インストール

Dockerによるインストールは迅速かつ簡単です。不要になったら、コンテナとイメージを削除するだけです。

# Sonar イメージをプルします docker pull sonarqube:8.3.1-community
# 例を実行します docker run --name sonarqube -p 9000:9000 -d sonarqube:8.3.1-community

次に、http://localhost:9000/ にアクセスします。デフォルトの管理者ユーザー名とパスワードはadmin/adminです。

ここでは無料のCommunity版を選択します。より強力な機能を備えたDeveloperEnterpriseなどの有料版もあります。具体的な違いは次のとおりです。

2.2 データベースの指定

通常、 OracleMySQLPostgreSQLなどのデータベースは自分で起動します。関連するシステム情報はAdministration-Systemで確認できます。指定しない場合は、デフォルトで組み込みのH2データベースが使用されます。別のデータベースを指定する場合は、Docker の起動時に指定する必要があります。

-e SONARQUBE_JDBC_USERNAME="xxx" \
-e SONARQUBE_JDBC_PASSWORD="***" \
-e SONARQUBE_JDBC_URL="jdbc:mysql://xxx"

H2データベースの使用には次の制限があります。

組み込みデータベースはテスト シナリオでのみ使用できます。組み込みデータベースは、SonarQube の新しいバージョンに拡張またはアップグレードすることはできず、他のデータベース エンジンへのデータの移行もサポートされていません。

したがって、実際の使用では組み込みH2データベースを使用しないことをお勧めします。

2.3 コンテナへの入室

コマンドによる:

$ docker exec -it コンテナID bash

bash-5.0# ls
コピー中 bin conf data elasticsearch extensions lib logs temp web
bash-5.0#

SonarQubeコンテナに入ることができます。 /opt/sonarqube構成ファイル、プラグイン、データ ファイル、ログ ファイルなどを表示できます。実際の使用はホスト マシンのディレクトリにマップされる必要があるため、インスタンスを再起動してもデータと構成はそのまま残ります。

2.4 プラグインのインストール

SonarQube強力なプラグイン管理機能を提供します。中国語言語パックを例に、プラグインのインストール方法を説明します。

Administration-Marketplace-Plugins 、検索ボックスにChineseと入力し、インストールを選択します。

ステータスにInstall Pendingと表示されたら、プラグインのインストールは完了です。有効にするには、 Restart Serverクリックします。

3. Mavenでコードを検出する

3.1 アカウントとパスワードによる使用

SonarQubeプラットフォームのアドレスを指定し、コードを検出するためのユーザー名とパスワードを指定します。具体的なコマンドは次のとおりです。

mvn clean verify sonar:sonar -Dsonar.host.url=http://localhost:9000 -Dsonar.login=admin -Dsonar.password=admin

3.2 トークンによる使用

もちろん、 admin直接使用してパスワードを公開するのは良い習慣ではありません。配置-權限-用戶を通じてユーザーとトークンを作成できます。

トークン9656c84090b2481db6ea97b6d14d87d546bff619をコピーします。

このようにして、トークンを介して操作できます。

mvn clean で sonar を検証します:sonar -Dsonar.host.url=http://localhost:9000 -Dsonar.login=9656c84090b2481db6ea97b6d14d87d546bff619

コマンドを実行すると、インターフェース上に新しいプロジェクトが自動的に作成され、検出結果が表示されます。

Sonar 、テスト カバレッジ、複雑さなど、より良いコードを書くのに大いに役立つ多くの指標を提供します。

4 結論

SonarQubeは強力であり、理解して習得する必要がある重要なDevOpsツールの 1 つです。

これで、Docker を使用してコード検出プラットフォーム SonarQube を構築し、Maven プロジェクトを検出する方法についての記事は終了です。Docker を使用してコード検出プラットフォーム SonarQube を構築し、Maven プロジェクトを検出する方法についての関連コンテンツをさらにご覧になりたい場合は、123WORDPRESS.COM で以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • docker を使って sonarqube を構築する方法

<<:  VUEはトークンログイン認証を実装

>>:  mysql5.6 の無効な utf8 設定の問題を解決する

推薦する

IE9 のネイティブ ページ互換性の問題に対する解決策についての簡単な説明

序文最近、クライアントのネイティブページを引き継ぎました。顧客は、ページが IE9 以降のバージョン...

Vue ターンテーブル抽選の簡単な実装

この記事では、ホイール抽選を簡単に実装するためのVueの具体的なコードを参考までに共有します。具体的...

Mysqlはマスタースレーブ構成とマルチマスターマルチスレーブ構成を実装します

現在シミュレーションしているのは、マスター スレーブ システム (ホスト 1 台とスレーブ 1 台)...

IISとAPACHEはHTTPSへのHTTPリダイレクトを実装しています

7 のMicrosoft の公式 Web サイトから HTTP Rewrite モジュールをダウンロ...

Linux で完全な Samba サーバーを構築する方法 (CentOS バージョン)

序文smb は、クライアントとサーバー間の Web 接続および情報通信に使用できるプロトコルの名前で...

MySQL データ挿入効率の比較

データを挿入するとき、以前オフィス システムに取り組んでいたときにはデータベースのパフォーマンスにつ...

7つの便利なTypeScriptの新機能

目次1. オプションの連鎖2. NULL値の結合3. 再帰型エイリアス4. アサーション署名5. P...

QT が MYSQL データベースに接続するための詳細な手順

最初のステップは、対応するデータベースモジュール(sql)をプロジェクトファイル( .pro )に追...

CSS の一部のプロパティの前には「*」または「_」が付きます。

CSS の一部のプロパティの前には「*」または「_」が付きます。さまざまなブラウザを識別する例えば...

MySQL 変数宣言とストアド プロシージャの分析

変数の宣言グローバル変数の設定@a='新しい変数' を設定します。関数やストアドプロ...

純粋な CSS を使用してユーザーが Web ページのコンテンツをコピーするのを防ぐ方法

序文私自身の個人ブログを入力しているときに、ブログの詳細ページでさまざまなコンテンツをコピーするさま...

MySQL NULLがピットを引き起こした

比較演算子でNULLを使用する mysql> 1>NULLを選択します。 +------...

JS addEventListener() およびattachEvent() メソッドは登録イベントを実装します

JavaScript の DOM イベント モデルでは、オブジェクトの addEventListen...

JS でシングルトン モードを実装するための 6 つのソリューションの概要

序文今日は、デザインパターンのクリエーションパターンを見直していたところ、JS でシングルトンパター...

Docker を使用してエンタープライズレベルのカスタムイメージを構築する方法

序文退社前に、ある依頼を受けました。基本イメージ規格の変更により、最新の Docker イメージ規格...