Gerar Funções e Plug-ins de Origem

A Construção de PDE pode gerar uma função ou um plug-in de origem. Considere a seguinte função 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" />

O objectivo do SDK é a inclusão de uma função, bem como da respectiva origem.  Tome em atenção a propriedade generate.feature no ficheiro build.properties da função. Esta propriedade indica à Construção de PDE que gere uma função denominada "org.foo.rcp.source" baseada nos conteúdos da função "org.foo.rcp". A Construção de PDE irá gerar uma função org.foo.rcp.source, um plug-in que irá conter o código fonte e os fragmentos que contêm a origem de quaisquer agrupamentos específicos da plataforma que estejam incluídos na função:
  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 a Função de Origem Gerada

A propriedade generate.feature tem o seguinte formato:
generate.feature@<source feature id> =
<feature id> [, feature@<feature id>] [, plugin@<plugin
id>[;unpack="false"]]
Utilize plugin@ para adicionar plug-ins adicionais que não façam parte da função original para a função de origem gerada. Este procedimento é útil para os plug-ins de documentação. A feature@ juntamente com um modelo de origem pode ser utilizado para imbricar funções de origem (ver a seguir).

Modelos de Origem

A função a partir da qual a função de origem está a ser gerada pode facultar ficheiros modelo para serem incluídos na função de origem gerada:
  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>

Quaisquer ficheiros localizados nesta pasta sourceTemplate serão incluídos na função/plug-in/fragmento gerado apropriado. Os ficheiros destes directórios irão substituir especificamente os ficheiros gerados pela construção de PDE.  Isto pode ser utilizado para facultar um feature.xml personalizado, se existirem requerimentos para a função de origem que não sejam suportados pela construção de PDE.

Imbricar Funções de Origem Geradas

Pode imbricar funções de origem ao facultar um ficheiro sourceTemplateFeature/build.properties para a função de origem gerada que contenha uma propriedade generate.feature para a função de origem imbricada.  Necessitará também de se certificar que a origem superior feature.xml inclui a função de origem imbricada. Para o fazer, utilize feature@ ou faculte um feature.xml modelo:

  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/...
No exemplo apresentado acima, o   org.foo.sdk contém uma função de origem gerada denominada org.foo.rcp.source. Esta função de origem gerada irá obter o ficheiro sourceTemplateFeature/build.properties modelo. Irá também incluir o org.foo.nested.source neste feature.xml. . Assim, quando a construção de PDE estiver a processar o org.foo.rcp.source gerado, poderá visualizar a inclusão da função org.foo.nested.source e a propriedade generate.feature property e gerar o org.foo.nested.source.

Gerar Plug-ins de Origem

É também possível gerar um único plug-in de origem baseado num único plug-in, em vez de basear a origem numa função. A propriedade para o fazer é:

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

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