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

推薦する

nginx設定ファイルの解釈の詳細な説明

nginx 設定ファイルは主に 4 つの部分に分かれています。 main{#(グローバル設定) ht...

MySQL インデックスの知識の要約

MySQL インデックスの確立は、MySQL の効率的な操作にとって非常に重要です。インデックスによ...

Vue の計算プロパティの詳細な説明

目次補間式方法計算された要約する今日は、Vue の計算プロパティについてお話ししましょう。計算プロパ...

MySQL mysqladmin クライアントの使用の概要

目次1. サーバーの状態を確認します。 2. ルートパスワードを変更します。 3. mysqlser...

Vue.js スロットにおけるスコープ付きスロットの使用法の詳細な説明

目次スロットなしVue2.x スロットスロット付き名前付きスロットスロット属性なしスロットの簡単なサ...

MySQL で制限を使用するとパフォーマンスに影響するのはなぜですか?

まず、MySQL のバージョンについて説明します。 mysql> バージョンを選択します();...

ファイルのアップロードの進行状況を示す React の例

目次React アップロードファイル表示の進行状況デモフロントエンドにReactアプリケーションを素...

Vueのコンポーネントの詳細な説明

目次1. コンポーネントの登録2. コンポーネントの使用3. 父から息子へ4. 息子から父へ5. ス...

MySQLでトランザクションを開始する方法

序文この記事では主にMySQLでトランザクションを開始する方法について紹介します。関連情報については...

WebStormはVue3統合APIのソリューションを正しく識別できません

1 問題の説明Vue3 の統合 API は、defineComponent やその他の関数が認識でき...

Vueは、商品の数を制御するためのコンポーネントのパッケージ化と使用を実装します。

Vueのコントロール商品数量コンポーネントのカプセル化と使用は参考までに。具体的な内容は以下のとお...

HTML ul 順序なしテーブルのアプリケーションネスト

順序なしリストのアプリケーションネストコードをコピーコードは次のとおりです。 <!DOCTYP...

カルーセル効果を書くためのjs

この記事では、カルーセルマップの効果を実現するためのjsの具体的なコードを参考までに共有します。具体...

TypeScript 学習ノート: 型の絞り込み

目次序文型推論真理値の絞り込み平等の縮小演算子の絞り込みインスタンスの絞り込み狭まりの本質ユニオン型...

Tomcatの自動シャットダウンに関するバグ修正

序文最近、4 年間実行されている Java EE Web プロジェクトでは、システムが開けないという...