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 設定の問題を解決する

推薦する

HTMLコードテキストボックスの制限入力テキストボックスが灰色になり、制限テキストボックスの入力

方法 1: readonly 属性を true に設定します。入力値=読み取り専用 readOnly...

jQuery はラブエフェクトをクリックする

この記事では、jQueryのクリック時のラブエフェクトの具体的なコードを参考までに共有します。具体的...

JavaScript インスタンス オブジェクトでプロトタイプ メソッドをオーバーライドする方法の詳細

目次JavaScriptでは、通常、次のコードのようにクラスを簡単に定義できます。 var サンプル...

VueはElementUIのフォームサンプルコードを模倣する

実装要件ElementUI を模倣したフォームは、インデックス コンポーネント、Form フォーム ...

meta name="" content="の機能の詳細な説明

1. 文法: <meta name="名前" content="...

HTML から PDF への変換事例の概要 (複数の画像を推奨)

仕事の都合上、最近 HTML を PDF に変換する機能について調べることに時間を費やしました。 H...

Vue で className として空の文字列を使用することはなぜ推奨されないのですか?

目次空の文字列 '' と null を比較するケース1: 空の文字列を使用する &#...

JSは10進数を16進数に変換するサンプルコードを実装します

序文コードを書くと、時々基数変換の問題に遭遇します。一般的な変換には、2進数、8進数、10進数、16...

スローモーションアニメーション効果を実現するJavaScript

この記事では、スローモーションアニメーション効果を実現するためのJavaScriptの具体的なコード...

Dockerコンテナデータボリュームの原理と使用法の分析

コンテナデータボリュームとはデータがコンテナ内にある場合、コンテナを削除するとデータは失われます。例...

MySQL スケジュール バックアップ ソリューション (Linux crontab を使用)

序文この世の愛には値段のつくものもありますが、データには値段のつけられないものがあります。将来、誤っ...

文字列の GBK および GB2312 エンコードとデコードのフロントエンド実装 (概要)

序文プロジェクトを開発しているときに、かなり厄介な問題に遭遇しました。この製品では、判断のためにブラ...

React Native環境のインストールプロセス

react-native インストールプロセス1.npx react-native init Awe...

CSS の 4 つのインポート方法と優先順位の簡単な分析

第一に: CSSを導入する4つの方法CSS を導入する方法には、インライン スタイル、埋め込みスタイ...

入力選択スタイルを変更する CSS 疑似クラスのサンプルコード

注: この表はW3Schoolチュートリアルから引用したものです疑似要素の分類と機能: 入力選択スタ...