本連載では、以下のイメージに沿って「CodeBuild」「SonarQube」を使った継続的インテグレーション(CI:Continuous integration)環境を実際に構築しています。
前回は、ECSクラスタ上に「SonarQubeServer」を構築しました。今回は、プロジェクトを作成し、QualityProfileで静的チェックルールを定義して、開発端末のIDEに設定してみます。
SonarQubeプロジェクトの作成
管理者ユーザー(初期設定では「admin:admin」)でログインし、右上の「+」ボタンから「create new project」を選択します。プロジェクトを一意に指定する「Project Key」と表示名となる「Display Name」を入力し、「setup」ボタンを押下します。
「Generate」ボタンを押下し、プロジェクトへアクセスするためのキーとなるアクセストークンを生成します。
生成されたトークンは開発端末のセットアップやビルド実行時のキーとして利用するので、無くさないように保存してください。
サードパーティ製プラグインのインストールととカスタムQualityProfileの作成・適用
SonarQubeはさまざまな言語のチェックルールがデフォルトで設定されていますが、サードバーティ製のプラグインをインストールすることで、ルール追加などのカスタマイズを行うことができます。ここでは、「Findbugs」プラグインを追加して、デフォルトのチェックルールを追加した新たなプロファイルを作成してみましょう。
「Findbugs」プラグインを追加するには「Administration」メニューを選択して、「MarketPlace」タブを選択してから、検索フォームで「Findbugs」と入力します。対象がピックアップされたら「install」ボタンを押下して、プラグインをインストールします。
インストール後は再起動を求められます。アプリケーションの再起動を行った後、再び管理者権限でログインし直してください。「Quality Profiles」メニューを選ぶと、Javaのプロファイルのなかに、インストールした「Findbugs」のチェックルールが追加されていることが確認できます。
続いて、もともとのデフォルトルールである「Sonar way」に「Findbugs」プラグインのルールを追加したプロファイルを作成してみましょう。Javaの「Sonar way」プロファイルのカスタム用のボタンを押下し、「copy」を選択します。
新しく作成するプロファイルの名称を入力します。
作成するプロファイルの名称を入力する |
コピー前のデフォルトルールでは、379のチェックルールが定義されていますが、ここに新たにルールを追加してみましょう。まず、「Activate More」ボタンを押下します。
ここで「common java」にある5つのルールを追加します。「Bulk Change」ボタンを押下することで、まとめて5つのルールを有効化できます。
アクティベートするプロファイルを選択すると、ルールが追加されます。
作成したプロファイルを先ほど作成したプロジェクトに適用します。プロジェクトの「Administration」タブで「Quality Profiles」を選択します。
「Java」の設定を先ほど作成したプロファイルに設定します。
これで静的チェックルールの定義/設定が完了しました。続いて、開発端末のIDEに上記のチェックルールが追加された「SonarLint」の設定を行います。
IntelliJ IDEAへのSonarLintのインストールとプロジェクトの設定
今回は開発端末のIDEとして「IntelliJ IDEA」を使用することとし、同IDEへのSonarLintプラグインのインストール方法とプロジェクトの設定方法を紹介します。IntelliJ IDEAでは、「Preferences」から、「Plugins」を選択し、「Browse Repositories」ボタンを押下します。
検索フォームで「SonarLint」を入力し、「install」ボタンを押下します。インストール後に再起動を求められるので、再起動してください。
再起動後に再び「Preferences」から、「Other Settings」メニューを選択し、「SonarLint General Settings」を選択します。「SonarQube Servers」で「+」ボタンを押下し、適当な「Configuration Name」を入力して、前回「 SonarQubeServer向けのアプリケーションロードバランサーの構築」で作成した「SonarQube」サーバのALBのDNSを入力して「Next」ボタンを押下します。
前節で取得したトークンを入力します。
SonarQube serverが追加されるので、引き続き、「SonarLint Project Settings」を選択します。
「search in list」ボタンを押下し、SonarQubeServerのプロジェクトを選択して、「Apply」ボタンを押してください。
この設定で、コーディング時にチェック結果やサジェストが表示されるようになります。
これで、静的チェックを実行しながらコーディングする環境が整いました。次回以降は、マイクロサービスにおけるテストコードの実装について詳述していきます。
著者紹介
川畑 光平(KAWABATA Kohei) - NTTデータ 課長代理
金融機関システム業務アプリケーション開発・システム基盤担当を経て、現在はソフトウェア開発自動化関連の研究開発・推進に従事。
Red Hat Certified Engineer、Pivotal Certified Spring Professional、AWS Certified Solutions Architect Professional等の資格を持ち、アプリケーション基盤・クラウドなどさまざまな開発プロジェクト支援にも携わる。