Procedura della generazione personalizzata delle funzioni e dei plug-in
Nella versione 3.2 una funzione oppure un un plug-in possono fornire
una procedura personalizzata alla propria generazione. Questa procedura può
essere utilizzata per operazioni quali la strumentazione di codice byte dopo la compilazione,
l'indicizzazione dei file della Guida per la documentazione oppure la copia di file aggiuntivi nel
bundle.
Per utilizzare destinazioni personalizzate, una funzione oppure un plug-in devono definire la proprietà
customBuildCallbacks nel proprio file build.properties; il valore
di questa proprietà è il
percorso di un file xml, relativo alla root della
funzione/plug-in, contenente le destinazioni personalizzate. Modelli denominati
customBuildCallbacks.xml
che contengono le destinazioni personalizzate supportate vengono
forniti rispettivamente in org.eclipse.pde.build/templates/plugins e
org.eclipse.pde.build/templates/features. Questi modelli
possono essere copiati nella propria funzione/plug-in e modificati in base alle
esigenze. Le destinazioni personalizzate verranno richiamate utilizzando l'attività subant
con failonerror="false", in modo che la generazione continui nel caso in cui il file xml
personalizzato non contiene una particolare destinazione oppure si verifichi un
errore.
Plug-in
Il file build.xml creato che genera un plug-in contiene diverse
destinazioni che eseguono attività specifiche. La generazione PDE consente al plug-in
di fornire pre e post-destinazioni personalizzate che verranno richiamate prima e dopo determinate
attività. Oltre alle proprietà ant che potrebbero essere state già definite,
a ogni destinazione personalizzata è possibile passare una coppia di proprietà
specifiche. Le seguenti destinazioni supportano
callback personalizzate:
- build.jars: La destinazione
build.jars richiamerà a sua volta ciascuna destinazione di compilazione che
verrà generata per questo bundle. Supporta destinazioni pre.build.jars e post.build.jars che vengono richiamate
prima e dopo che tutte le destinazioni di compilazione vengono richiamate.
Sia le pre che le post-destinazioni presentano la proprietà build.result.folder
che è la cartella in cui verranno copiati
i risultati della generazione.
- Destinazioni di compilazione:
build.xml definisce una destinazione di compilazione per ciascun jar generato (ad esempio,
@dot per il bundle stesso o library.jar). Ciascuna destinazione di compilazione
supporta 3 callback personalizzate:
- pre.<destinazione di compilazione>:
Richiamata prima della compilazione dei file di origine. Viene fornita con le
seguenti proprietà:
- target.folder: la cartella in cui verranno
collocati i file di classe
- source.folder<N>: la cartella o le cartelle di origine
che contengono l'origine
da compilare. (ad esempio, source.folder1, source.folder2,
e così via).
- <destinazione di compilazione>.classpath: un
riferimento alla struttura dei percorsi
ant che contienet il percorsi classi che verrà utilizzato nella
compilazione. (ad esempio, @dot.classpath, library.jar.classpath)
- post.compile.<destinazione
di compilazione>: richiamato dopo l'origine, ma prima che
i file di classe vengano trasformati in file jar oppure copiati nella cartella dei
risultati della generazione.
Viene fornito con le stesse proprietà della destinazione pre.<destinazione
di compilazione>.
- post.<destinazione di compilazione>:
richiamata alla fine della destinazione di compilazione dopo che i risultati vengono
copiati nella cartella dei risultati della generazione. Viene fornita con le
seguenti proprietà:
- jar.Location: il jar o la cartella contenente i
risultati della compilazione.
- <destinazione di compilazione>.classpath: un riferimento
alla struttura dei percorsi ant che contengono il percorso classi utilizzato nella
compilazione.
- build.sources: questa
destinazione genera gli zip di origine per ciascuna delle destinazioni di
compilazione. Supporta le destinazioni pre.build.sources
e post.build.sources. Entrambe queste destinazioni presentano la proprietà
build.result.folder che è la cartella nella quale verranno copiati i file zip di
origine.
- gather.bin.parts:
Questa destinazione copia i risultati della generazione (ossia i jar e altri file
da includere nel bundle) nella directory della destinazione finale.
È anche la destinazione in cui i qualificatori di versione vengono sostituiti nel file
manifest (vedre Qualificatori di
versione). Supporta le destinazioni pre.gather.bin.parts
e post.gather.bin.parts. Alle pre e alle post-destinazioni vengono fornite due proprietà:
- build.result.folder: la cartella che contiene i
risultati della generazione
- target.folder: la cartella di destinazione in cui verranno copiati
i risultati della generazione e il contenuto
della generazione.
- gather.sources: questa
destinazione raccolgono gli zip di origine per il bundle. Supporta le destinazioni pre.gather.sources e post.gather.sources.
Sia le pre
che le post-destinazioni vengono fornite con la proprietà target.folder che è la
cartella in cui verranno copiate le origini.
- gather.logs: questa
destinazione raccoglie i file di log dalla generazione. Supporta pre.gather.logs e post.gather.logs. Sia le pre
che le post-destinazioni
vengono fornite con la destination.temp.folder che è la cartella
temporanea in cui vengono copiati i file di log.
- clean: questa destinazione
esegue una pulitura, supporta le destinazioni pre.clean
e post.clean.
Le pre e le post-destinazioni presentano le seguenti proprietà:
- plugin.destination: la cartella in cui è stato copiato
il bundle finale.
- build.result.folder: la cartella in cui verranno copiati
i risultati della generazione
- temp.folder: la cartella temporanea in verranno
inseriti i risultati prima di essere copiati nella destinazione finale.
Funzioni
Il file build.xml generato per le funzioni supporta solo callback delle
generazioni personalizzate per la destinazione gather.bin.parts. Questa destinazione richiameranno
la destinazione gather.bin.parts di tutte le funzioni e di tutti i
plug-in inclusi. Supporta pre.gather.bin.parts e
post.gather.bin.parts. Entrambe queste destinazioni vengono fornite con le
seguenti proprietà:
- destination.temp.folder: la directory in cui
verranno copiati i plug-in.
- feature.directory: la directory in cui i
verranno copiati i file per questa funzione.