インスペクション
インスペクション (IntelliJ IDEA) ビルドランナーは、プロジェクトの IntelliJ IDEA インスペクションに基づいてコード分析を実行することを目的としています。 TeamCity が最初の始動時に自動的にダウンロードしてインストールするバージョンに加えて、JetBrains IntelliJ Inspections and Duplicates エンジンの別のバージョンをインストールすること、および/または 管理 | ツール ページを使用してデフォルトを変更することができます。
IntelliJ IDEA のコード分析エンジンは、Java、JavaScript、HTML、XML およびその他のコードをインスペクションでき
ありそうなバグを見つけます。
「デッド」コードを見つけます。
パフォーマンスの問題を検出します。
コードの構造と保守性を改善します。
コードがガイドライン、標準、仕様に準拠していることを確認してください。
詳細は IntelliJ IDEA のドキュメントを参照してください。
このページには、 インスペクション (IntelliJ IDEA) ビルドランナーフィールドに関するリファレンス情報が含まれています。
IntelliJ IDEA プロジェクト設定
オプション | 説明 |
|---|---|
プロジェクトファイルの種類 | TeamCity でコードに対して IntelliJ IDEA インスペクションを実行できるようにするには、IntelliJ IDEA プロジェクトファイル/ディレクトリ、Maven |
プロジェクトへのパス | プロジェクトファイルの種類 で選択したプロジェクトの種類に応じて、ここで指定します。
|
| このオプションは、IntelliJ IDEA プロジェクトを使用してインスペクションを実行する場合に利用できます。 IntelliJ IDEA では、モジュール設定は |
プロジェクトのチェック / 再解析 | このオプションは、IntelliJ IDEA プロジェクトを使用してインスペクションを実行する場合に利用できます。 このボタンをクリックすると、IntelliJ IDEA プロジェクトが再解析され、JDK のリストなどのビルド設定がプロジェクトから直接インポートされます。 |
作業ディレクトリ | ビルド作業ディレクトリが ビルドチェックアウトディレクトリと異なる場合は、そのパスを入力します。 オプションで、チェックアウトディレクトリと異なる場合は指定します。 |
未解決のプロジェクトモジュールとパス変数
このセクションは、IntelliJ IDEA モジュールファイル(.iml )が IntelliJ IDEA プロジェクトファイルから参照されている場合に表示されます。
見つからない
IPR ファイルで使用されているパス変数の値を入力できます。
このセクションの値をリフレッシュするには、 プロジェクトのチェック / 再解析 をクリックします。
オプション | 説明 |
|---|---|
<パス変数のお名前> | このフィールドは、プロジェクトファイルに IntelliJ IDEA 設定の パス変数ダイアログで定義されたパスマクロが含まれている場合に表示されます。 フィールドに値を設定 で、さまざまなビルドエージェントで使用するプロジェクトリソースへのパスを指定します。 |
プロジェクト SDK
このセクションでは、プロジェクトで検出された SDK のリストを提供します。
オプション | 説明 |
|---|---|
JDK ホーム | このフィールドを使用して、プロジェクトの JDK ホームを指定します。 |
JDK Jar ファイルパターン | このリンクをクリックすると、プロジェクト JDK の jar ファイルのテンプレートを定義できるテキスト領域が開きます。 Ant ルールを使用して、jar ファイルパターンを定義します。 Linux および Windows オペレーティングシステムでは、デフォルト値が使用されます。
jre/lib/*.jar
macOS の場合は、次の行を使用してください。
lib/*.jar
../Classes/*.jar
|
IDEA ホーム | プロジェクトで IDEA JDK を使用している場合は、IDEA ホームディレクトリの場所を指定します。 |
IDEA Jar ファイルパターン | このリンクをクリックしてテキスト領域を開き、IDEA JDK の jar ファイルのテンプレートを定義できます。 |
Java パラメーター
- JDK
JDK を選択してください。 このセクションは利用可能なオプションを詳しく述べています。 デフォルトは
JAVA_HOME環境変数またはエージェント自身の Java です。- JDK ホームパス
上で <カスタム> が選択されている場合に、このオプションを使用できます。 このフィールドを使用して、ビルドの実行に使用するカスタム JDK へのパスを指定します。 フィールドが空白の場合、JDK Home へのパスは、エージェントマシン上の
JAVA_HOME環境変数、または ビルドエージェント構成ファイル (ビルドエージェント.プロパティ) で指定されたenv.JAVA_HOME 環境変数プロパティから読み取られます。 これらの値が指定されていない場合、TeamCity はビルドエージェントプロセス自体の Java ホームを使用します。- JVM コマンドラインパラメーター
追加の JVM コマンドラインパラメーターを使用すると、初期および最大ヒープサイズの設定、追加のログの有効化、必要なバイトコード検証モードの選択などを行うことができます。
標準 (
-で始まる、たとえば-verbose:[class|module|gc|jni]または--dry-run) と非標準 (-Xで始まる、たとえば-Xmx<サイズ>または-XstartOnFirstThread) の両方の JVM オプションを指定できます。複数のコマンドラインパラメーターを指定するには、区切り文字としてスペースを使用します。 例:
-verbose:gc -Xdiag -Xcomp -Xmx512m -Xms256m
インスペクションパラメーター
IntelliJ IDEA ベースの IDE では、報告されるコードインスペクションは インスペクションプロファイルで設定されます。
TeamCity でインスペクションを実行する場合、使用するインスペクションプロファイルを指定できます。まず IntelliJ IDEA ベースの IDE でインスペクションプロファイルを設定し、その後 TeamCity で指定します。
インスペクションプロファイルを準備するときは、次の規則に従ってください。
インスペクションプロファイルがスコープを使用する場合、スコープが共有されていることを確認してください。
プロファイルをロックします (これにより、TeamCity には存在するが IDEA インストールでは有効化されていないインスペクションは TeamCity によって実行されません);
プロファイルに、デフォルトの IntelliJ IDEA Ultimate ディストリビューションに含まれていないプラグインによって提供されるインスペクションが含まれていないことを確認します (含まれている場合は TeamCity によって単に無視されます);
最良の結果を得るには、TeamCity で使用されているものと同じバージョンの IntelliJ IDEA でインスペクションプロファイルを編集します (インスペクションビルドログで確認できます)。
インスペクションプロファイルを選択するロジックは次のとおりです。
インスペクションプロファイルへのパスが指定されている場合、プロファイルはファイルからロードされます。 ロードが失敗すると、インスペクションランナーも失敗します。
インスペクションプロファイルの名前が指定されている場合、プロジェクトの共有プロファイルでプロファイルが検索されます。 そのようなプロファイルがない場合、インスペクションランナーは失敗します。
名前もパスも指定されていない場合、プロジェクトのデフォルトプロファイルが使用されます。
オプション | 説明 |
|---|---|
インスペクションプロファイルパス | このテキストフィールドを使用して、プロジェクトのルートディレクトリに相対的なインスペクションプロファイルファイルへのパスを指定します。 このフィールドは、「インスペクションプロファイル名」で指定された共有プロジェクトプロファイルを使用しない場合にのみ使用します。 |
インスペクションプロファイル名 | 目的の共有プロジェクトプロファイルの名前を入力します。 フィールドが空白のままで、プロファイルパスが指定されていない場合、デフォルトのプロジェクトプロファイルが使用されます。 |
パターンを含める / 除外する: | オプションで、インスペクションを実行するソーススコープを制限するように指定します。 |
包含 / 除外パターンは、改行で区切られた次の形式のルールのセットです。
ここで、パターンは次のルールを満たさなければなりません。
**または*のいずれかで終了する必要があります(これにより、パターンは実質的にディレクトリレベルのみに制限され、ファイルレベルのパターンはサポートされません)。モジュールへの参照は
[<IDEA_モジュール_名前>]/<モジュール内のパス>として含めることができます。 Maven プロジェクトが構成されている場合、Maven モジュールの artifactId を<IDEA_モジュール_名前>として使用できます。構成されたパスは、IDEA プロジェクトモジュールのコンテンツルート内の相対パスとして扱われます。 つまり、パスはモジュールのルートに対して相対的でなければなりません。
パターン処理に関する注意事項:
除外は包含よりも優先されます
include パターンが指定されている場合、これらのパターンに一致するディレクトリだけが含まれ、その他のすべてのディレクトリは除外されます。
include パターンには特別な動作があります(根本的な制限のため): 指定されたディレクトリと、指定されたディレクトリより上のディレクトリに直接存在するすべてのファイルが含まれます。
例:
Maven インスペクション実行の場合、プロジェクト JDK に正しい Java が使用されるようにするには、プロジェクト JDK として使用される JDK を指す env.JAVA_HOME 環境変数 構成パラメーターを定義します。
IntelliJ IDEA と TeamCity インスペクションビルドで同じ結果を得る
IntelliJ IDEA および TeamCity Java コードインスペクションビルドによって報告されるコードインスペクションは、いくつかの要因によって異なります。 同じレポートを取得するには、IntelliJ IDEA とビルドの設定を等しくする必要があります。 関連する設定は次のとおりです。
IntelliJ IDEA および TeamCity ビルドで使用される インスペクションプロファイル;
環境固有のプロジェクトの依存関係(バージョン管理にないファイルなど)。
定義された SDK、パス変数などの IDE レベルの設定。
生成されたファイル: IntelliJ IDEA でプロジェクトを操作するときに存在する場合は、TeamCity エージェントにも存在する必要があります;
IntelliJ IDEA バージョン。 TeamCity ビルドで使用されているものと同じ IntelliJ IDEA バージョンを使用することをお勧めします。 バージョンはインスペクションビルドログに書き込まれます。
プロジェクトが依存する IntelliJ IDEA プラグインのセットとバージョン。