連続積分からのintellij検査の実行


IntelliJのアイディアは、意図としてコードを書くとき、IDE内でコーディングを改善する機能を提供します.意図は、バッチでソースを通してパターンのコードを検査し、さらにコマンドライン解析に拡張したり、連続的な統合に追加するために使用することができます.このポストは、ボックスのintellij機能をカバーし、カスタムで意図を拡大してsenseiで作成されます.

Intellij検査


IntelliJの検査機能は、コーディング時に動的にIDEで動的に報告されているエラーの多くを表示します.
  • インターフェイスに変換できる抽象クラスの検出
  • ローカルであることができる冗長クラス分野を特定すること.
  • 推奨されないメソッドの使用に関する警告
  • など
  • これらの検査は、関連付けられたQuickfixを持つ意図したアクションとしてIDEで一致するコードを強調表示します.

    コードが検査に一致したときに、リアルタイムのIDEが強調表示されますので、動的にコーディングを改善できます.コードの問題を識別した後、コードをQuickFixにIntelliJ意図アクションを使用すると、より良いパターンを強化することができます.

    検査プロフィール


    検査は、IDE内で、コマンドラインから、または連続的な統合プロセスでバッチとして実行できます.
    Intellij検査をバッチで作業するためのキーは、検査プロファイルを使用することです.
    IntelliJには、2つの既定の検査プロファイルがあります.
    新しい検査プロファイルを作成し、特定のプラグインを設定するか、ケースを使用できます.
  • チェックスタイルのリアルタイムスキャンのみを実行する
  • 特定の規則を実行する
  • HTMLチェックを実行する
  • プロファイルの検査を有効にするか、intellij設定から無効にできます.設定ダイアログはまた、利用可能な検査の範囲を学ぶために簡単な方法です.

    'ツール'アイコンを使用すると、プロファイルを複製し、ルールの特定のセットを収集するための新しいプロファイルを作成することができます.

    IDEでの検査プロファイルの実行


    検査プロファイルを使用してIDE内で実行できますAnalyze \ Inspect Code... メニュー.

    Analysis機能を使用すると、テストソースを含むまたは除外するなど、プロジェクト全体に対して検査が実行されるスコープを制御できます.

    また、特定のプロファイルを作成または設定するには、ここから検査プロファイルを管理することができます.
    クリック[OK] 「検査スコープを指定」ダイアログでは、定義されたスコープ間でプロファイル内のすべての選択した検査を実行するIntellijをトリガします.
    Intellijは、2008年に検査を実行した結果を報告するでしょうInspection Results タブ.

    The Sensei 安全なコードの戦士からのプラグインは、カスタムのコードマッチングレシピを作成することができます.SenseiはIntellij意図アクションとして使用する自然としてこれらのカスタムレシピを作るためにIntellijと緊密に統合.彼らは検査としてintellijにロードされ、グループ化、有効化、および検査プロファイルを使用して無効にすることを意味します.カスタム検査プロファイルを作成してから、Analysis Inspect Code機能を使用すると、プロジェクト全体にわたってSenseiレシピを実行する推奨方法です.

    コマンドラインから検査プロファイルを実行する


    intellijはJetbrainsによって文書化されたコマンドラインから検査を実行する能力を持っています.
  • https://www.jetbrains.com/help/idea/working-with-the-ide-features-from-command-line.html
  • 私は主にMac OSを使い、コマンドラインからIntellijの単一のインスタンスを実行できます.
    open -na "IntelliJ IDEA CE.app"
    
    実行を容易にするために、シェルコマンドスクリプトに追加します.vi /usr/local/bin/ideaスクリプトの内容はIntellijによって提供される公式文書からです.
    #!/bin/sh
    
    open -na "IntelliJ IDEA CE.app" --args "$@"
    
    私は、コマンドライン検査プロセスを簡素化するために、この実行可能にしました.chmod 755 /usr/local/bin/idea公式Intellijドキュメントは、次のように検査コマンドの一般的な形式を説明しますidea inspect <project> <inspection-profile> <output> [<options>]実際には、パスを完全に修飾します.
    idea inspect /Users/user/GitHub/sensei-blog-examples /Users/user/GitHub/sensei-blog-examples/.idea/inspectionProfiles/senseiprofile.xml /Users/user/GitHub/sensei-blog-examples/scan-results
    
    これは私が追加したすべての検査を実行しますsenseiprofile そして、結果をscan-results フォルダ.

    閲覧検査結果


    これらの結果は連続的な統合から報告することができます.
    また、Intellij自体の中で、Analyse \ View Offline Inspection Results… 機能.

    これは結果をInspection Results タブ.

    これは公式にJetbrainsサイトに記録されています.
  • https://www.jetbrains.com/help/idea/command-line-code-inspector.html#inspection-results
  • コマンドライン実行が連続的な統合プロセスに組み込まれた場合、これはコードレビュープロセス中に使用されるかもしれません、そして、レビュー者は検査結果エントリーのどんな完全なソースコンテクストもチェックしたかったです.

    連続積分における検査プロファイル


    連続的な統合にコマンドライン検査を加えるとき、我々は理想的にレポートを自動的に生成して欲しいです、そして、オプションの数が我々に開いています.
    TeamCityは連続的な統合の検査プロファイルのボックスのサポートを提供しています.
  • https://www.jetbrains.com/help/teamcity/inspections.html
  • Jenkins警告NGプラグインは、レポート形式の1つとしてIntellij検査からのコマンドライン出力をサポートします.
  • https://github.com/jenkinsci/warnings-ng-plugin
  • https://github.com/jenkinsci/warnings-ng-plugin/blob/master/SUPPORTED-FORMATS.md
  • コミュニティプロジェクトidea CLI Inspector 他のCIツールで検査プロファイルを使用してサポートするために存在するか
  • https://github.com/bentolor/idea-cli-inspector
  • CIプロセスにおける検査プロファイルの将来は、Jetbrains Qodanaプロジェクトの導入によりさらに明るく見えます.Qodanaプロジェクトは、公式GitHubアクションとDockerイメージでIntellijのヘッドレス版です.
  • https://github.com/JetBrains/Qodana
  • Qodanaは現在ベータ版ですが、上院チームはそれを監視しています.

    概要


    意図アクションを使用すると、コーディングパターンを強化し、コーディング時にエラーを発生させるとすぐにIDEでそれらを修正できます.
    検査プロファイルを使用すると、バッチで実行できるプロファイルに解析を行い、コードアクションを検査できます.我々がパターンに遭遇して、我々が我々のコードでどこか他のものを逃したならば、二重にチェックしたいならば、これは役に立つことがありえます.
    検査プロファイルは、コマンドラインから実行することができますし、継続的な統合プロセスに組み込まれても“信頼は、”モデルを確認し、任意の偶然のスリップをキャッチします.
    上記のすべてがIntellij機能で構築され、JetbrainsはQodanaの導入との継続的な統合プロセスを改善しています.
    SenseiのレシピはIntelllijにネイティブの意図のアクションとして機能し、検査のプロファイルには、公式のJetbrainsコマンドラインの実行機能によって提供されるコードと連続的な統合のサポートを調べることによってバッチチェックをサポートするために収集されるロードされます.
    あなたは“設定\プラグイン”(Mac)または“設定\プラグイン”(Windows)を使用してIntellij内からsenseiをインストールできます.またはJetbrains Marketplace Online
    Learn more about Sensei