Etapas do Build Customizado de Recursos e Plug-ins
Novo no 3.2 é a capacidade para um recurso ou plug-in contribuir
com etapas customizadas para seu próprio build. Essas etapas customizadas podem
ser utilizadas para, por exemplo, instrumentar o byte-code após a compilação,
indexar arquivos de ajuda para documentação ou copiar arquivos extras no
pacote configurável.
Para utilizar destinos customizados, um recurso ou plug-in deve definir a propriedade
customBuildCallbacks em seu arquivo build.properties; o valor
dessa
propriedade é o local de um arquivo xml, relativo à raiz do
recurso/plug-in, contendo os destinos customizados. Os modelos denominados
customBuildCallbacks.xml
contendo os destinos customizados suportados são
fornecidos em org.eclipse.pde.build/templates/plugins e
org.eclipse.pde.build/templates/features, respectivamente. Esses
modelos podem ser copiados para seu recurso/plug-in e modificados conforme
necessário. Os destinos customizados serão chamados utilizando a tarefa subant
com failonerror="false", para que o build continue se seu
arquivo xml customizado não contiver um destino específico ou ocorrer um
erro.
Plug-ins
O build.xml gerado que constrói um plug-in contém vários
destinos que desempenham tarefas específicas. O Build PDE permite que o plug-in
forneça destinos pré e pós customizados que serão chamados antes e após
tarefas específicas. Além de quaisquer propriedades ant que possam
já estar definidas, também é possível transmitir a cada destino customizado algumas
propriedades específicas. Os seguintes destinos suportam
retornos de chamada:
- build.jars: O
destino build.jars chamará sucessivamente cada destino de compilação
que será construído para esse pacote configurável. Ele suporta destinos pre.build.jars e post.build.jars, que são
chamados antes e após todos os destinos de compilação serem chamados.
Os destinos pré e pós são fornecidos com a propriedade build.result.folder,
que é pasta para a qual os
resultados do
build serão copiados.
- Destinos de Compilação:
O build.xml define um destino de compilação para cada jar que está sendo construído (por exemplo,
@dot para o próprio pacote configurável ou library.jar). Cada destino de
compilação suporta 3 retornos de chamada customizados:
- pre.<destino de compilação>:
Chamado antes dos arquivos de origem serem compilados. Ele é fornecido com as
seguintes propriedades:
- target.folder: A pasta na qual os arquivos de
classe
compilados serão colocados
- source.folder<N>: A(s) pasta(s) de origem
contendo
a origem a ser compilada. (Por exemplo, source.folder1, source.folder2,
etc).
- <destino de compilação>.classpath: Uma
referência à
estrutura do caminho ant contendo o caminho de classe que será utilizado na
compilação. (Por exemplo, @dot.classpath, library.jar.classpath)
- post.compile.<destino de
compilação>: Chamado após a compilação da origem, mas
antes dos arquivos de classe serem empacotados em jar ou copiados para a pasta de
resultados do build.
Fornecido com as mesmas propriedades que o destino pre.<destino de
compilação>.
- post.<compilation target>:
Chamado no final do destino de compilação após os resultados serem
copiados para a pasta de resultados do build. Ele é fornecido com as
seguintes propriedades:
- jar.Location: O jar ou pasta que contém os
resultados da compilação.
- <destino de compilação>.classpath: Uma referência
à estrutura do caminho ant contendo o caminho de classe que foi utilizado na
compilação.
- build.sources: Este
destino constrói os zips de origem para cada um dos destinos de
compilação. Ele suporta os destinos pre.build.sources
e post.build.sources.
Ambos os destinos são fornecidos com a propriedade
build.result.folder que é a pasta para a qual os arquivos zip de origem
serão copiados.
- gather.bin.parts:
Este destino copia os resultados do build (isto é, os jars e quaisquer outros arquivos
que estiverem sendo incluídos no pacote configurável) para o diretório de destino final.
Também é o destino no qual os qualificadores de versão são substituídos no
arquivo de manifesto (consulte Qualificadores
de Versão). Ele suporta os destinos pre.gather.bin.parts
e post.gather.bin.parts.
Duas propriedades são fornecidas para os destinos pré e pós:
- build.result.folder: a pasta que contém os
resultados
do build
- target.folder: a pasta de destino para a qual
os resultados do build
e o conteúdo do pacote configurável estão sendo copiados.
- gather.sources: Este
destino reúne os zips de origem para o pacote configurável. Ele suporta os destinos pre.gather.sources e post.gather.sources.
Os destinos pré
e pós são fornecidos com a propriedade target.folder, que é
a pasta para a qual as origens estão sendo copiadas.
- gather.logs: Este
destino coleta os arquivos de registro do build. Ele suporta pre.gather.logs e post.gather.logs. Os destinos pré
e pós
são fornecidos com a destination.temp.folder, que é a
pasta temporária para a qual os arquivos de registro estão sendo copiados.
- clean: Este destino
desempenha uma limpeza; ele suporta os destinos pre.clean
e post.clean.
Os destinos pré e pós possuem as seguintes propriedades:
- plugin.destination: A pasta para a qual
o pacote configurável final
foi copiado.
- build.result.folder: A pasta para a qual os resultados
do
build foram copiados.
- temp.folder: A pasta temporária na qual os
resultados
foram migrados antes de serem copiados para o destino final.
Recursos
O build.xml gerado para recursos suporta apenas retornos de chamada do
build customizado para o destino gather.bin.parts. Este destino
chamará o destino gather.bin.parts de todos os recursos e plug-ins
incluídos. Ele suporta pre.gather.bin.parts e
post.gather.bin.parts. Ambos os destinos são fornecidos com
as seguintes propriedades:
- destination.temp.folder: O diretório para o qual
os plug-ins
serão copiados.
- feature.directory: O diretório para o qual os
arquivos desse
recurso serão copiados.