NetBeans IDEでの注釈プロセッサのサポート

Jesse Glick氏によって寄稿されたサンプル

このページの内容は、NetBeans IDE 7.2、7.3、7.4および8.0に適用されます

この2部構成のチュートリアルでは、IDEで注釈プロセッサをプロジェクトにアタッチして、コーディング中に使用する方法を示します。NetBeans IDEには、カスタム注釈プロセッサのサポートが組み込まれています。プロジェクトで実行する注釈プロセッサを指定したり、コード補完およびナビゲーションによって注釈処理の結果を直接Javaエディタで確認したりできるようになり、使いやすくなりました。

1つ目のチュートリアルでは、サードパーティの注釈プロセッサであるプロジェクトLombokをNetBeans IDEで使用する方法を示します。

2つ目のチュートリアルでは、自身で記述した注釈プロセッサをプロジェクトに追加する方法を説明します。この部分のチュートリアルのサンプル・コードは、Jesse Glick氏によって寄稿されました。

このチュートリアルを完了するには、次のソフトウェアとリソースが必要です。

ソフトウェアまたはリソース 必須バージョン
NetBeans IDE 7.2, 7.3, 7.4, 8.0
Java Development Kit (JDK) バージョン7または8

概要

注釈は、アプリケーションの要素に関するメタデータを保持するために使用される、Javaプログラミング言語の機構です。注釈には、デプロイメント時または実行時に、コンパイラが注釈付き要素を処理する方法についてのメタ情報が保持されています。つまり注釈は、他のプログラムおよびツールが処理できる、コードへのコメントです。

カスタム注釈を使用すると、アプリケーションの一部(著作権情報やテスト・メソッドなど)のマーク付け、コードの自動生成、コマンド行オプションの解析、Webサービスの開発などの様々な作業を実行できます。カスタム注釈の処理方法についての情報は、カスタム注釈プロセッサを通してJavaコンパイラに渡されます。JDK 6にはJSR 269が実装され、注釈プロセッサを記述するための公式APIが提供されています。独自のカスタム注釈プロセッサを記述するか、またはサードパーティのソリューションを使用できます。

JDK 6の注釈の基本的な情報については、次のリソースを参照してください。

  • Java SEのドキュメント - 注釈
  • Java SEのチュートリアル - 注釈

実際には、注釈は、Java EE仕様の一部であるJPA (Java Persistence API)、およびJAXB (Java Architecture for XML Binding)などの他の技術と組み合せて最も広く使用されています。JPAを使用すると、後で記憶域に持続できるエンティティとしてJavaクラスに注釈を付けられます。JPAベースのアプリケーションを開発するには、IDEにバンドルされているEclipseLinkなどのフレームワークを使用するのが便利です。NetBeans IDEでJPAベースのアプリケーションを記述するための出発点として、Java EEアプリケーションの開始を参照してください。

注釈処理のjavacオプションとIDEコマンドのマップ

前述したように、Java SE 6のjavacでは注釈処理がJavaコンパイラの統合機能として取り入れられました。コンパイラは、デフォルトで自動的にユーザー・クラス・パスで注釈プロセッサを検索します(注釈処理が明示的に無効にされている場合を除く)。さらに、javacオプションを使用することで、検索パスや特定の注釈プロセッサのパスを指定できます。次の表では、注釈処理に関連するjavacオプションと、対応するIDEのコマンドのマップが確認できます。JDK 6のjavacオプションの詳細は、javac - Javaプログラム言語コンパイラを参照してください。

注意:IDEでは、NetBeansプラットフォーム・アプリケーションを除くすべてのJavaアプリケーションの注釈処理オプションが「プロジェクト・プロパティ」ウィンドウで指定されます。プロジェクトの「プロパティ」ウィンドウを開くには、プロジェクトを右クリックし、「プロパティ」を選択します。

Java 6のjavacオプション IDEのコマンド 説明
-processor

「プロジェクト・プロパティ」>「ビルド」>「コンパイル」>「注釈プロセッサ」フィールド

「注釈プロセッサ」フィールドで、注釈プロセッサの完全修飾名を指定します。

実行する注釈プロセッサを明示的に指定します。このオプションを使用すると、サービス・プロバイダの構成ファイル(META-INF/services/javax.annotation.processing.Processor)を作成する必要がなくなります。
-proc:none

「プロジェクト・プロパティ」>「ビルド」>「コンパイル」>「注釈処理を有効にする」チェックボックス

このチェックボックスを無効にすると、どのような注釈処理もされずにプロジェクトがコンパイルされます。

どのような注釈処理もされずにコンパイルが処理されます。コンパイル中に注釈プロセッサ検出機構は使用されません。
-processorpath

「プロジェクト・プロパティ」>「ライブラリ」>「プロセッサ」タブ

注釈プロセッサが含まれているIDEプロジェクト、ライブラリ、またはJARファイルのパスを指定します。このオプションは、注釈プロセッサと注釈が別々のJARファイルにパッケージ化されている場合に使用します。

注釈プロセッサを検索する場所を指定します。このオプションが指定されていない場合は、クラスパスでプロセッサが検索されます(次を参照)。
-classpath

「プロジェクト・プロパティ」>「ライブラリ」>「コンパイル」タブ

注釈プロセッサおよび注釈宣言が含まれているIDEプロジェクト、ライブラリ、またはJARファイルのパスを指定します。このオプションは、注釈プロセッサと注釈が単一のJARファイルにパッケージ化されている場合に使用します。

ユーザー・クラス・ファイル、および(オプションで)注釈プロセッサとソース・ファイルを検索する場所を指定します。-processorpathオプションが指定されていない場合は、このパスで注釈プロセッサが検索されます。
-Akey[=value]

「プロジェクト・プロパティ」>「ビルド」>「コンパイル」>「プロセッサ・オプション」フィールド

プロジェクトに関連付けられている注釈プロセッサに渡すオプションを追加します。この値はオプションです。

(オプション)注釈プロセッサに渡すオプション。

 

次の手順

IDEでの注釈の使用方法を学習するには、次のチュートリアルの各パートを参照してください。

get support for the NetBeans

Support


By use of this website, you agree to the NetBeans Policies and Terms of Use. © 2013, Oracle Corporation and/or its affiliates. Sponsored by Oracle logo