インクリメンタル・プロジェクト・ビルダー

org.eclipse.core.resources.builders

ワークスペースでは、インクリメンタル・プロジェクト・ビルダー (または「ビルダー」と略します) の概念がサポートされています。 ビルダーのジョブは、一連のリソースの変更を処理するためのものです (リソース・デルタとして提供されます)。 例えば、Java ビルダーは、変更された Java ファイルを再コンパイルし、新規のクラス・ファイルを作成します。

ビルダーはプロジェクトごとに構成され、プロジェクト内のリソースが変更されると自動的に実行されます。 したがってビルダーは、プロジェクト内のリソース数ではなく変更量の点から、高速であり拡張が容易であることが求められます。 これは、ビルダーが「ビルド状態」をインクリメンタルに更新できることを暗黙指定するものです。

ビルダーの作成者は、ビルダー拡張ポイントを使用することにより、そのビルダーの 実装をシンボリック名に登録することができます。 これはワークスペース内からビルダーの検出および実行に使用されます。 シンボル名は、ビルダー拡張機能の ID です。 ビルダー拡張機能を定義する場合は、"name" 属性の値を人間が理解できる形で組み込むようにしてください。 これはビルダーを識別し、場合によってはユーザーに提示されることがあります。

<!ELEMENT extension (builder)>

<!ATTLIST extension

point CDATA #REQUIRED

id    CDATA #REQUIRED

name  CDATA #IMPLIED>


<!ELEMENT builder (run?)>

<!ATTLIST builder

hasNature      (true | false)

isConfigurable (true | false) >


<!ELEMENT run (parameter*)>

<!ATTLIST run

class CDATA #REQUIRED>


<!ELEMENT parameter EMPTY>

<!ATTLIST parameter

name  CDATA #REQUIRED

value CDATA #REQUIRED>


ビルダー構成の例を以下に示します。

   

<extension id=

"coolbuilder"

name=

"Cool Builder"

point=

"org.eclipse.core.resources.builders"

>

<builder hasNature=

"false"

>

<run class=

"com.xyz.builders.Cool"

>

<parameter name=

"optimize"

value=

"true"

/>

<parameter name=

"comment"

value=

"Produced by the Cool Builder"

/>

</run>

</builder>

</extension>

この拡張機能が ID "com.xyz.coolplugin" を使用してプラグインに定義されていた場合、このビルダーの 完全修飾名は"com.xyz.coolplugin.coolbuilder" になります。

class 属性の値は、org.eclipse.core.resources.IncrementalProjectBuilder の サブクラスを表す必要があります。

プラットフォーム自体には、事前定義されたビルダーはありません。 特定の製品のインストールにより、必要なビルダーの組み込みが可能です。