Generar características y plug-ins de código fuente

La construcción PDE puede generar una característica o plug-in de código fuente.  Observe esta característica SDK:
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" />

La idea del SDK es incluir una característica junto con el código fuente de la misma.  Observe la propiedad generate.feature del archivo build.properties de la característica.  Esta propiedad indica a la construcción PDE que genere una característica denominada "org.foo.rcp.source" basada en el contenido de la característica "org.foo.rcp".  La construcción PDE generará una característica org.foo.rcp.source, un plugin que contendrá el código fuente y fragmentos que contendrán el código fuente de los paquetes compuestos específicos de plataforma incluidos en la característica:
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

Personalizar la característica de código fuente generada

La propiedad generate.feature tiene el formato siguiente:
generate.feature@<id característica fuente> = <id característica> [, feature@<id característica>] [, plugin@<id plugin>[;unpack="false"]]
Utilice plugin@ para añadir plug-ins adicionales que no formaban parte de la característica original de la característica de código fuente generada.  Esto resulta de utilidad para plug-ins de documentación.  Puede utilizarse feature@ junto con una plantilla de fuente para anidar características de código fuente (consulte la información que figura más adelante).

Plantillas de código fuente

La característica desde la que se genera la característica de código fuente puede suministrar archivos de plantilla que se incluirán en la característica de código fuente generada:
features/
org.foo.rcp/
sourceTemplateFeature/<archivos que deben incluirse en la característica de código fuente generada>
sourceTemplatePlugin/<archivos que deben incluirse en el plugin de código fuente generado>
sourceTemplateFragment/<archivos que deben incluirse en los fragmentos específicos de plataforma generados>

Los archivos ubicados en estas carpetas sourceTemplate se incluirán en la característica, plug-in o fragmento adecuado que se genere.  Específicamente, los archivos de estos directorios sustituirán a los archivos generados por la construcción PDE.  Esto puede utilizarse para suministrar un archivo feature.xml personalizado si existen requisitos para la característica de código fuente a los que la construcción PDE no da soporte.

Anidar características de código fuente generadas

Puede anidar características de código fuente suministrando un archivo sourceTemplateFeature/build.properties para la característica de código fuente generada que contenga una propiedad generate.feature para la característica de código fuente anidada.  También deberá asegurarse de que el archivo feature.xml de código fuente de alto nivel contenga la característica de código fuente anidada, mediante la utilización de feature@ o suministrando un archivo de plantilla 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/...
En el ejemplo anterior,  org.foo.sdk contiene una característica de código fuente generada denominada org.foo.rcp.source.  Esta característica de código fuente generada obtendrá el archivo de plantilla sourceTemplateFeature/build.properties.  También incluirá org.foo.nested.source en su feature.xml.  Así, cuando la construcción PDE esté procesando la org.foo.rcp.source generada, verá la inclusión de la característica org.foo.nested.source y la propiedad generate.feature y, a continuación, generará org.foo.nested.source.

Generar un plug-in de código fuente

También es posible generar un solo plug-in de código fuente basado en un solo plug-in de código fuente, en lugar de basar el código fuente en una característica.  La propiedad que debe utilizar para ello es la siguiente:

generate.plugin@<id plug-in código fuente>=<id plug-in>

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