features/
org.foo.sdk/
feature.xml: <includes id="org.foo.rcp" />
<includes id="org.foo.rcp.source" />
build.properties: generate.feature@org.foo.rcp.source = org.foo.rcp
org.foo.rcp/
feature.xml: <plugin id="org.foo.BundleA" />
<plugin id="org.foo.BundleB" />
<plugin id="org.foo.BundleB.win32" fragment="true" os="win32" />
features/
org.foo.rcp.source/
feature.xml: <plugin id="org.foo.rcp.source"/>
<plugin id="org.foo.rcp.source.win32" fragment="true" os="win32" />
plugins/
org.foo.rcp.source/src/
org.foo.BundleA/src.zip
org.foo.BundleB/src.zip
org.foo.rcp.source.win32/src/
org.foo.BundleB.win32/src.zip
generate.feature@<source feature id> = <feature id> [, feature@<feature id>] [, plugin@<plugin id>[;unpack="false"]]
features/
org.foo.rcp/
sourceTemplateFeature/<files to be included in generated source feature>
sourceTemplatePlugin/<files to be included in generated source plugin>
sourceTemplateFragment/<files to be included in generated platform specific fragments>
この sourceTemplate フォルダーにあるファイルはすべて、所定の生成済みフィーチャー/プラグイン/フラグメントに組み込まれます。
具体的には、上記ディレクトリーからのファイルが、PDE ビルドで生成されたファイルに置き換わります。
これによって、PDE ビルドがサポートしないソース・フィーチャーが必要な場合に、カスタムの feature.xml を提供することができます。
生成されたソース・フィーチャーの sourceTemplateFeature/build.properties ファイルを指定することで、ソース・フィーチャーをネストすることができます。このファイルには、ネストされるソース・フィーチャーの generate.feature プロパティーが含まれています。
また、feature@ を使用するか、テンプレート feature.xml を使用して、最上位ソースの feature.xml に、ネストされるソース・フィーチャーを組み込むようにする必要があります。
features/
org.foo.sdk/
sourceTemplateFeature/
build.properties: generate.feature@org.foo.nested.source = org.foo.nested
feature.xml: <includes id="org.foo.rcp" />
<includes id="org.foo.rcp.source" />
build.properties: generate.feature@org.foo.rcp.source = org.foo.rcp, feature@org.foo.nested.source
org.foo.rcp/...
org.foo.nested/...
フィーチャーを基にしてソースを生成するのではなく、単一のプラグインを基にして単一のソース・プラグインを生成することもできます。 これを実行するためのプロパティーは、次のとおりです。
generate.plugin@<source plug-in id>=<plug-in id>
例:features/
org.foo.sdk/
feature.xml: <plugin id="org.foo.rcp" />
<plugin id="org.foo.rcp.source" />
build.properties: generate.plugin@org.foo.rcp.source = org.foo.rcp