Configurazione della generazione
Il meccanismo di generazione si basa sulla configurazione di una generazione. La configurazione della generazione per un singolo plugin, frammento o funzione si trova in un file build.properties relativo all'elemento corrispondente.
Le procedure guidate per la creazione di progetti PDE generano il file build.properties durante la creazione di progetti di plugin. Il file contiene informazioni su come compilare cartelle di origine in JAR. Tali informazioni possono essere aggiornate indirettamente nella pagina Runtime dell'editor manifest. Possono anche essere modificate direttamente utilizzando l'editor appropriato.
Il PDE fornisce un editor semplice per il file build.properties che dispone di viste di origine e form.
Lo stesso file segue il formato delle proprietà Java. È necessario fornire un insieme di chiavi e i valori corrispondenti. I valori multipli sono delimitati da una virgola.
Proprietà comuni
- bin.includes - elenca tutti i file inclusi nella versione vinaria del plugin generato;
- bin.excludes - elenca i file da escludere dalla libreria binaria.
- qualifier - quando il numero della versione elemento termina con .qualifier indica il valore da sostituire a ".qualifier". Il valore della proprietà può essere context, <value> o none.
Il contesto genererà una data in base alla data del sistema oppure utilizzerà i tag CVS quando la generazione diventa automatica. Si tratta di un valore reale. Non sarà possibile rimuovere ".qualifier". Se la proprietà viene omessa,
viene utilizzato il contesto.
- custom=true - indica che lo script di generazione è manuale rispetto a una generazione automatica. Quindi non vengono presi in considerazione altri valori.
Proprietà specifiche dei plugin
- source.<library> - elenca le cartelle di origine che verranno compilate
(ad esempio, source.xyz.jar=src/, src-ant/).
Se la libreria è specificata nel file plugin.xml o manifest.mf, il valore vi dovrà corrispondere;
- output.<library> - elenca la cartella di output che riceve il risultato della compilazione;
- source.<library> - elenca i file che non devono essere copiati nella libreria dal compilatore;
- extra.<library> - i percorsi classi supplementari utilizzati per eseguite la generazione automatica. I percorsi classi possono essere percorsi relativi o URL della piattaforma che fanno riferimento a plugin e frammenti dell'ambiente di sviluppo (ad esempio ../someplugin/xyz.jar, platform:/plugins/org.apache.ant/ant.jar).
Sono preferibili gli URL della piattaforma piuttosto che i percorsi relativi;
- manifest.<library> - indica il file che verrà utilizzato come manifest per la libreria. Il file deve essere ubicato in una delle cartelle di origine utilizzate come input del jar.
- src.includes - elenca i file da includere nella generazione di origine;
- src.excludes - elenca i file da escludere dalla generazione di origine;
- jars.extra.classpath - (obsoleta) stesso effetto di extra.<library>, ma le voci vengono applicate a tutte le librerie;
- jars.compile.order - definisce l'ordine di compilazione dei jar (in presenza di più librerie).
I valori definiti per le chiavi che terminano con "includes" o "excludes" sono espressi come "modelli" Ant. I formati standard consentono di ottenere i risultati previsti. Ad esempio, "*.jar"
indica tutti i file jar nella directory di livello superiore. Per impostazione predefinita, i modelli non prevedono molti livelli. Per descrivere tutti i file Java ad esempio, è necessario utilizzare il modello "**/*.java".
Il modello "**" corrisponde a qualsiasi numero di livelli di directory.
Analogamente, per descrivere le intere sub-strutture, utilizzare "xyz/".
Proprietà specifiche delle funzioni
- root - elenca i file e le cartelle da includere nell'elemento principale del prodotto. I diversi valori supportati sono:
- <folderName> - un percorso relativo di una cartella da copiare;
- file:<fileName> - un percorso relativo di un file da copiare;
- absolute:<folderName> - un percorso assoluto di una cartella da copiare;
- absolute:file:<fileName> - un percorso assoluto di un file da copiare;
- root.<config> - elenca i file e le cartelle da includere nell'elemento principale del prodotto quando viene generato per la configurazione specificata. config è composto da tre (3) segmenti di una configurazione separati da un punto;
- root.permissions.<permissionValue> - elenca i file e le cartelle per modificarne il valore in base a quello specificato. Il riferimento alle cartelle deve terminare con '/';
- root.permissions.<config>.<permissionValue> - elenca i file e le cartelle per modificarne il valore in base a quello specificato per una determinata configurazione. Il riferimento alle cartelle deve terminare con '/';
- root.link - elenca a coppie (separate da una virgola) i file e le cartelle da collegare simbolicamente. La prima voce indica l'origine (destinazione nella terminologia unix) e la seconda il nome del collegamento;
- root.link.<config> - un elenco separato da virgole di coppie di file e cartelle da collegare simbolicamente per una determinata configurazione. La prima voce indica l'origine (destinazione nella terminologia unix) e la seconda il nome del collegamento;
- generate.feature@<featureId> - indica che la funzione di origine featureId sarà la funzione di origine per la funzione indicata come valore di questa proprietà.
I valori elencati dopo la prima virgola indicano gli elementi da recuperare dal repository;
- generate.plugin@<pluginId> - indica che il plug-in di origine pluginId sarà il plugin di origine per il plug-in indicato come valore di questa proprietà.
Il seguente esempio è stato estratto da build.properties della funzione org.eclipse.platform.
bin.includes=epl-v10.html,eclipse_update_120.jpg,feature.xml,feature.properties,license.html
root=rootfiles,file:../../plugins/org.eclipse.platform/startup.jar,configuration/
root.permissions.755=eclipse
root.linux.motif.x86=../../plugins/platform-launcher/bin/linux/motif,linux.motif
root.linux.motif.x86.link=libXm.so.2.1,libXm.so.2,libXm.so.2.1,libXm.so
root.linux.motif.x86.permissions.755=*.so*