corner imagecorner image
IDEPlatformPluginsDocs & SupportCommunityPartners

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

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

このページの内容は NetBeans IDE 6.9、7.0、および 7.1 が対象です

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

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

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

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

ソフトウェアまたはリソース 必須バージョン
NetBeans IDE 6.9, 7.0, 7.1
Java Development Kit (JDK) version 6

注:

  • カスタム注釈プロセッサのサポートは、NetBeans IDE 6.9 リリースで追加されました。このチュートリアルは、それより前のバージョンの IDE では動作しません。

はじめに

注釈は、アプリケーションの要素に関するメタデータを保持するために使用される、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 6 アプリケーション入門」を参照してください。

注釈処理の 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 での注釈の使用方法を学習するには、次のチュートリアルの各パートを参照してください。