Generera källfunktioner och källinsticksprogram

PDE-byggfunktionen kan generera en källfunktion eller ett källinsticksprogram.  Studera följande SDK-funktion:
  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" />

Idén med SDK är att den innehåller både en funktion och källan till den funktionen.  Observera egenskapen generate.feature i funktionens build.properties-fil.  Den här egenskapen säger åt PDE-byggfunktionen att generera en funktion med namnet org.foo.rcp.source" baserad på innehållet i funktionen org.foo.rcp".  PDE-byggfunktionen kommer att generera en org.foo.rcp.source-funktion, ett insticksprogram som kommer att innehålla källkoden och fragment som innehåller källan för eventuella plattformsspecifika paket som inkluderades i funktionen:
  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

Anpassa den genererade källfunktionen

Egenskapen generate.feature har följande format:
generate.feature@<source feature id> = <feature id> [, feature@<feature id>] [, plugin@<plugin id>[;unpack="false"]]
Använd plugin@ när du vill lägga till ytterligare insticksprogram som inte ingick i den ursprungliga funktionen till den genererade källfunktionen.  Det är användbart för dokumentationsinsticksprogram.  feature@ tillsammans med en källmall kan användas för att nästla källfunktioner (se nedan).

Källmallar

Den funktion som källfunktionen genereras från kan tillhandahålla mallfiler som ska tas med i de genererade källfunktionerna:
  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>

Alla filer som finns i mappen sourceTemplate kommer att inkluderas i lämplig genererad funktion/insticksprogram/fragment.  Närmare bestämt kommer filer från de här katalogerna att ersätta filer som genererats av PDE-byggfunktionen.  Det här kan användas för att tillhandahålla en anpassad feature.xml om det finns krav för källfunktionen som PDE-byggfunktionen inte uppfyller.

Nästla genererade källfunktioner

Du kan nästla källfunktioner genom att tillhandahålla en sourceTemplateFeature/build.properties-fil för den genererade källfunktionen som innehåller en generate.feature-egenskap för den nästlade källfunktionen.  Du behöver också se till att den översta feature.xml-källfilen innehåller den nästlade källfunktionen. Det gör du antingen genom att använda feature@ eller genom att tillhandahålla en feature.xml-mallfil:

  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/...
I ovanstående exempel innehåller   org.foo.sdk en genererad källfunktion med namnet org.foo.rcp.source.  Den här genererade källfunktionen kommer att hämta mallfilen sourceTemplateFeature/build.properties. file.  Den kommer också att inkludera org.foo.nested.source i sin feature.xml.  Så när PDE-byggfunktionen bearbetar den genererade org.foo.rcp.source, ser den att funktionen org.foo.nested.source och egenskapen generate.feature inkluderats och genererar sedan org.foo.nested.source.

Generera ett källinsticksprogram

Det är också möjligt att generera ett enskilt källinsticksprogram baserat på ett enskilt insticksprogram i stället för att basera källan på en funktion.  Egenskapen för att göra det är:

generate.plugin@<source plug-in id>=<plug-in id>

Exempel:
  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