本連載では、以下のイメージに沿って「CodeBuild」「SonarQube」を使った継続的インテグレーション(CI:Continuous integration)環境を実際に構築しています。

構築するCI環境のイメージ

前回は、ECSクラスタ上に「SonarQubeServer」を構築しました。今回は、プロジェクトを作成し、QualityProfileで静的チェックルールを定義して、開発端末のIDEに設定してみます。

SonarQubeプロジェクトの作成

管理者ユーザー(初期設定では「admin:admin」)でログインし、右上の「+」ボタンから「create new project」を選択します。プロジェクトを一意に指定する「Project Key」と表示名となる「Display Name」を入力し、「setup」ボタンを押下します。

「Project Key」と「Display Name」を入力して「setup」ボタンを押下する

「Generate」ボタンを押下し、プロジェクトへアクセスするためのキーとなるアクセストークンを生成します。

「Generate」ボタンを押下し、アクセストークンを生成

生成されたトークンは開発端末のセットアップやビルド実行時のキーとして利用するので、無くさないように保存してください。

生成されたアクセストークンは無くさないように保管しておく

サードパーティ製プラグインのインストールととカスタムQualityProfileの作成・適用

SonarQubeはさまざまな言語のチェックルールがデフォルトで設定されていますが、サードバーティ製のプラグインをインストールすることで、ルール追加などのカスタマイズを行うことができます。ここでは、「Findbugs」プラグインを追加して、デフォルトのチェックルールを追加した新たなプロファイルを作成してみましょう。

「Findbugs」プラグインを追加するには「Administration」メニューを選択して、「MarketPlace」タブを選択してから、検索フォームで「Findbugs」と入力します。対象がピックアップされたら「install」ボタンを押下して、プラグインをインストールします。

「Findbugs」プラグインを追加する

インストール後は再起動を求められます。アプリケーションの再起動を行った後、再び管理者権限でログインし直してください。「Quality Profiles」メニューを選ぶと、Javaのプロファイルのなかに、インストールした「Findbugs」のチェックルールが追加されていることが確認できます。

続いて、もともとのデフォルトルールである「Sonar way」に「Findbugs」プラグインのルールを追加したプロファイルを作成してみましょう。Javaの「Sonar way」プロファイルのカスタム用のボタンを押下し、「copy」を選択します。

「Sonar way」プロファイルのカスタム用のボタンを押下し、「copy」を選択する

新しく作成するプロファイルの名称を入力します。

作成するプロファイルの名称を入力する

コピー前のデフォルトルールでは、379のチェックルールが定義されていますが、ここに新たにルールを追加してみましょう。まず、「Activate More」ボタンを押下します。

「Activate More」ボタンを押下する

ここで「common java」にある5つのルールを追加します。「Bulk Change」ボタンを押下することで、まとめて5つのルールを有効化できます。

「Bulk Change」ボタンを押下する

アクティベートするプロファイルを選択すると、ルールが追加されます。

アクティベートするプロファイルを選択する

作成したプロファイルを先ほど作成したプロジェクトに適用します。プロジェクトの「Administration」タブで「Quality Profiles」を選択します。

「Administration」タブで「Quality Profiles」を選択する

「Java」の設定を先ほど作成したプロファイルに設定します。

「Java」の設定を先に作成したプロファイルに設定する

これで静的チェックルールの定義/設定が完了しました。続いて、開発端末のIDEに上記のチェックルールが追加された「SonarLint」の設定を行います。

IntelliJ IDEAへのSonarLintのインストールとプロジェクトの設定

今回は開発端末のIDEとして「IntelliJ IDEA」を使用することとし、同IDEへのSonarLintプラグインのインストール方法とプロジェクトの設定方法を紹介します。IntelliJ IDEAでは、「Preferences」から、「Plugins」を選択し、「Browse Repositories」ボタンを押下します。

「Preferences」から、「Plugins」を選択し、「Browse Repositories」ボタンを押下する

検索フォームで「SonarLint」を入力し、「install」ボタンを押下します。インストール後に再起動を求められるので、再起動してください。

検索フォームで「SonarLint」を入力し、「install」ボタンを押下する

再起動後に再び「Preferences」から、「Other Settings」メニューを選択し、「SonarLint General Settings」を選択します。「SonarQube Servers」で「+」ボタンを押下し、適当な「Configuration Name」を入力して、前回「 SonarQubeServer向けのアプリケーションロードバランサーの構築」で作成した「SonarQube」サーバのALBのDNSを入力して「Next」ボタンを押下します。

SonarQubeサーバのALBのDNSを入力して「Next」ボタンを押下する

前節で取得したトークンを入力します。

トークンを入力する

SonarQube serverが追加されるので、引き続き、「SonarLint Project Settings」を選択します。

「SonarLint Project Settings」を選択する

「search in list」ボタンを押下し、SonarQubeServerのプロジェクトを選択して、「Apply」ボタンを押してください。

SonarQubeServerのプロジェクトを選択して、「Apply」ボタンを押下する

この設定で、コーディング時にチェック結果やサジェストが表示されるようになります。

コーディング時にチェック結果やサジェストが表示されるようになる

これで、静的チェックを実行しながらコーディングする環境が整いました。次回以降は、マイクロサービスにおけるテストコードの実装について詳述していきます。

著者紹介


川畑 光平(KAWABATA Kohei) - NTTデータ 課長代理

金融機関システム業務アプリケーション開発・システム基盤担当を経て、現在はソフトウェア開発自動化関連の研究開発・推進に従事。

Red Hat Certified Engineer、Pivotal Certified Spring Professional、AWS Certified Solutions Architect Professional等の資格を持ち、アプリケーション基盤・クラウドなどさまざまな開発プロジェクト支援にも携わる。