フィーチャーおよびプラグイン・カスタム・ビルドの手順
3.2 には、カスタム・ステップをそれ自体のビルドに提供するフィーチャーまたはプラグインのための新しい機能があります。
これらのカスタム・ステップは、コンパイル後のバイトコードの計測、文書のヘルプ・ファイルの索引付け、または追加ファイルのバンドルへのコピーなどに使用することができます。
カスタム・ターゲットを使用するには、フィーチャーまたはプラグインが build.properties ファイルでプロパティー customBuildCallbacks を定義する必要があります。このプロパティーの値は、フィーチャー/プラグインのルートに対して相対的な、カスタム・ターゲットが含まれている xml ファイルのロケーションです。
サポートされるカスタム・ターゲットが含まれている customBuildCallbacks.xml という名のテンプレートが、org.eclipse.pde.build/templates/plugins と org.eclipse.pde.build/templates/features にそれぞれ提供されています。
これらのテンプレートをフィーチャー/プラグインにコピーして、必要に応じて変更することができます。
カスタム・ターゲットは、カスタム xml ファイルに特定のターゲットが含まれていない場合、またはエラーが発生した場合でもビルドが継続するように、failonerror="false" の subant タスクを使用して呼び出されます。
プラグイン
特定のタスクを実行する複数のターゲットを含む、プラグインをビルドする生成済み build.xml。
PDE ビルドにより、プラグインは、特定のタスクの前後に呼び出されるカスタムのプリターゲットおよびポストターゲットを提供できます。
また、既に定義された Ant プロパティーに加えて、それぞれのカスタム・ターゲットがいくつかの特定のプロパティーに渡される場合があります。
以下のターゲットはカスタム・コールバックをサポートします。
- build.jars: build.jars ターゲットは、このバンドルのためにビルドされるそれぞれのコンパイル・ターゲットを順番に呼び出します。
これは、すべてのコンパイル・ターゲットが呼び出される前後に呼び出される pre.build.jars および post.build.jars ターゲットをサポートします。
プレおよびポスト・ターゲットには、ビルドの結果がコピーされるフォルダーであるプロパティー build.result.folder が用意されています。
- コンパイル・ターゲット:
build.xml は、ビルドされている各 JAR のコンパイル・ターゲットを定義します (バンドル自体の eg@dot、または library.jar)。
各コンパイル・ターゲットは 3 つのカスタム・コールバックをサポートします。
- pre.<compilation target>:
ソース・ファイルがコンパイルされる前に呼び出されます。 これは以下のプロパティーに提供されています。
- target.folder: コンパイルされたクラス・ファイルが配置されるフォルダー
- source.folder<N>: コンパイルされるソースを含むソース・フォルダー。
(例 source.folder1、source.folder2、その他)。
- <compilation target>.classpath: コンパイルに使用されるクラスパスを含む Ant パス構造への参照。
(例 @dot.classpath、library.jar.classpath)
- post.compile.<compilation
target>: ソースがコンパイルされた後で、クラス・ファイルが jar されるか、またはビルド結果フォルダーにコピーされる前に呼び出されます。
pre.<compilation target> ターゲットと同じプロパティーを備えています。
- post.<compilation target>:
結果がビルド結果フォルダーにコピーされた後、コンパイル・ターゲットの終わりに呼び出されます。
これは以下のプロパティーに提供されています。
- jar.Location: コンパイル結果を含む JAR またはフォルダー。
- <compilation target>.classpath: コンパイルに使用されたクラスパスを含む ANT パス構造への参照。
- build.sources: このターゲットは、それぞれのコンパイル・ターゲットにソース zip をビルドします。
これは、pre.build.sources
および post.build.sources ターゲットをサポートします。
これらのターゲットの両方に、ソース zip ファイルがコピーされるフォルダーであるプロパティー build.result.folder が備えられています。
- gather.bin.parts:
このターゲットは、ビルド結果 (すなわち、バンドルに組み込まれている JAR と他のファイル) を最終宛先ディレクトリーにコピーします。
これも、バージョン限定子がマニフェスト・ファイルに置き換えられるターゲットです (バージョン限定子を参照)。 これは、pre.gather.bin.parts
および post.gather.bin.parts ターゲットをサポートします。
2 つのプロパティーが、プリターゲットおよびポストターゲットに提供されます。
- build.result.folder: ビルドの結果を含むフォルダー。
- target.folder: ビルド結果とバンドル・コンテンツがコピーされる宛先フォルダー。
- gather.sources: このターゲットは、バンドルのためのソース zip を収集します。
これは、pre.gather.sources および post.gather.sources ターゲットをサポートします。
プレおよびポスト・ターゲットには、ソースがコピーされているフォルダーである target.folder プロパティーが備わっています。
- gather.logs: このターゲットはビルドからログ・ファイルを収集します。
これは、pre.gather.logs および post.gather.logs をサポートします。 プレおよびポスト・ターゲットは、ログ・ファイルがコピーされる一時フォルダーである destination.temp.folder を備えています。
- clean: このターゲットは clean を実行します。これは、pre.clean
および post.clean ターゲットをサポートします。
プレおよびポスト・ターゲットは、以下のプロパティーを備えています。
- plugin.destination: 最終バンドルがコピーされたフォルダー。
- build.result.folder: ビルドの結果がコピーされたフォルダー
- temp.folder: 最終宛先にコピーされる前に、結果がステージングされる一時フォルダー。
フィーチャー
フィーチャーの生成済み build.xml は、gather.bin.parts ターゲットのカスタム・ビルド・コールバックのみをサポートします。
このターゲットは、すべての組み込まれたフィーチャーおよびプラグインの gather.bin.parts ターゲットを呼び出します。
これは、pre.gather.bin.parts および
post.gather.bin.parts をサポートします。 これらの両方のターゲットには、以下のプロパティーが備わっています。
- destination.temp.folder: プラグインがコピーされるディレクトリー。
- feature.directory: このフィーチャーのファイルがコピーされるディレクトリー