Generere kildefunksjoner og -plugin-moduler

PDE Build kan generere en kildefunksjon eller -plugin-modul. Se på den følgende SDK-funksjonen:
  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" />

Tanken bak SDK er at den skal inkludere en funksjon i tillegg til kilden for denne funksjonen. Legg merke til egenskapen generate.feature i funksjonens build.properties-fil. Denne egenskapen ber PDE Build om å generere en funksjon med navnet org.foo.rcp.source som er basert på innholdet i funksjonen org.foo.rcp. PDE Build genererer en org.foo.rcp.source-funksjon, en plugin-modul som skal inneholde kildekoden, og fragmenter som inneholder kilden til hvilke som helst plattformspesifikke bunter som var inkludert i funksjonen:
  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

Tilpasse den genererte kildefunksjonen

Egenskapen generate.feature har dette formatet:
generate.feature@<source feature id> = <feature id> [, feature@<feature id>] [, plugin@<plugin id>[;unpack="false"]]
Bruk plugin@ til å legge til ekstra plugin-moduler som ikke var en del av den opprinnelige funksjonen, i den genererte kildefunksjonen. Dette er nyttig for å dokumentere plugin-moduler. feature@ sammen med en kildemal kan brukes til å neste kildefunksjoner (se nedenfor).

Kildemaler

Funksjonen som kildefunksjonen genereres fra, kan gjøre at det blir inkludert malfiler i den genererte kildefunksjonen:
  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>

Alle filer som ligger i denne sourceTemplate-mappen, blir inkludert i det riktige genererte mappe/plugin-modul/fragment. Filer fra disse katalogene erstatter filer som er generert av PDE Build. Dette kan brukes til å sørge for en tilpasset feature.xml, hvis det er krav til kildefunksjonen som PDE Build ikke støtter.

Neste genererte kildefunksjoner

Du kan neste kildefunksjoner ved å oppgi en sourceTemplateFeature/build.properties-fil for den genererte kildefunksjonen som inneholder en generate.feature-egenskap for den nestede kildefunksjonen. Forsikre deg også om at den øverste kilde-feature.xml inkluderer den nestede kildefunksjonen. Du gjør enten ved å bruke feature@ eller ved å oppgi en mal-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/...
I eksempelet ovenfor inneholder org.foo.sdk en generert kildefunksjon med navnet org.foo.rcp.source. Denne genererte kildefunksjonen henter malfilen sourceTemplateFeature/build.properties. Den vil også inkludere org.foo.nested.source i feature.xml.  Så når PDE Build behandler den genererte org.foo.rcp.source, ser den inkluderingen av funksjonen org.foo.nested.source og egenskapen generate.feature, og genererer deretter org.foo.nested.source.

Generere en kilde-plugin-modul

Det er også mulig å generere en enkelt kilde-plugin-modul basert på en enkelt plugin-modul i stedet for å basere kilden på en funksjon. Dette er egenskapen for å gjøre dette:

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

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