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.xml 包含巢狀來源特性,請利用 feature@ 或提供範本 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