Erstellung konfigurieren
Der Erstellungsmechanismus wird durch eine Erstellungskonfiguration gesteuert. Die Erstellungskonfiguration für
ein einzelnes Plug-in, ein Fragment oder eine einzelne Komponente befindet sich in einer Datei build.properties für das betreffende Element.
PDE-Projekterstellungsassistenten generieren die Datei build.properties, wenn
Plug-in-Projekte erstellt werden. Die Datei enthält Informationen dazu, wie
Quellenordner in JAR-Dateien kompiliert werden. Diese Informationen können indirekt auf der Seite "Laufzeit" des Manifesteditors aktualisiert werden. Sie können außerdem mit dem entsprechenden Editor direkt geändert werden.
PDE bietet einen einfachen Editor für die Datei
build.properties, der eine Format- und eine Quellensicht
enthält.
Die Datei selbst entspricht dem Format für Java-Eigenschaften. Sie
müssen eine Reihe von Schlüsseln und ihre entsprechenden Werte
angeben. Mehrere Werte werden durch ein Komma als Begrenzer voneinander
abgegrenzt.
Allgemeine Eigenschaften
- bin.includes - Listet Dateien auf, die in die Binärversion des erstellten Plug-ins aufgenommen werden;
- bin.excludes - Listet Dateien auf, die von der binären Erstellung ausgeschlossen werden sollen.
- qualifier - Wenn die Versionsnummer des Elements auf .qualifier endet, gibt dies an, durch welchen
Wert ".qualifier" zu ersetzen ist. Der Wert dieser Eigenschaft kann context, <value> oder none sein.
"Context" verwendet entweder das Systemdatum, um ein Datum zu generieren oder die CVS-Tags, falls die Erstellung automatisiert ist. "Value" ist ein Wert. Bei "none" wird ".qualifier" entfernt. Wenn die Einschaft übergangen wird, wird der Kontext verwendet.
- custom=true - Gibt an, dass das Erstellungs-Script manuell erstellt wurde (im Gegensatz zur automatischen Generierung). Deshalb werden keine anderen Werte berücksichtigt.
Spezifische Eigenschaften von Plug-ins
- source.<library> - Listet Quellenordner auf, die kompiliert werden (z.B. source.xyz.jar=src/, src-ant/).
Wenn die Bibliothek in der Datei 'plugin.xml' oder 'manifest.mf' festgelegt wurde, sollte der Wert derselbe sein;
- output.<library> - Listet Ausgabeordner auf, in denen das Ergebnis der Kompilation gespeichert werden soll;
- source.<library> - Listet die Dateien auf, die der Compiler nicht in die Bibliothek kopieren soll;
- extra.<library> - Zusätzliche Klassenpfade, die zur Ausführung einer automatischen Erstellung verwendet werden. Klassenpfade können entweder relative Pfade sein oder Plattform-URLs, die sich auf Plug-ins und Fragmente Ihrer Entwicklungsumgebung beziehen (z.B.../someplugin/xyz.jar, platform:/plugins/org.apache.ant/ant.jar).
Plattform-URLs werden über relativen Pfaden empfohlen;
- manifest.<library> - Gibt die Datei an, die als Manifest für die Bibliothek verwendet wird. Die Datei muss sich in einem der Quellenordner befinden, der als Eingabe der JAR verwendet wird.
- src.includes - Listet Dateien auf, die in die Quellenerstellung aufgenommen werden sollen.
- src.excludes - Listet Dateien auf, die von der Quellenerstellung ausgeschlossen werden sollen.
- jars.extra.classpath - (deprecated) Hat denselben Effekt wie extra.<library>, die Einträge werden aber auf alle Bibliotheken angewandt;
- jars.compile.order - Definiert die Reihenfolge, in der JAR-Dateien kompiliert werden sollen (im Falle mehrerer Bibliotheken).
Die Werte für Schlüssel, die auf "includes" und "excludes" enden, werden in Form von
Ant-"Mustern" ausgedrückt. Standardformate produzieren die erwarteten Ergebnisse. Der Wert "*.jar"
beispielsweise gibt alle JAR-Dateien im Verzeichnis der höchsten Ebene an. Die Muster dringen standardmäßig nicht sehr tief in die
Struktur ein. Wenn Sie beispielsweise alle Java-Dateien beschreiben wollen, sollten Sie das Muster "**/*.java" verwenden.
Das Muster "**" stimmt mit einer beliebigen Zahl von Verzeichnisebenen überein.Wenn Sie ganze Unterverzeichnisbäume beschreiben wollen, verwenden Sie
entsprechend "xyz/".
Spezifische Eigenschaften von Komponenten
- root - Listet die Dateien und Ordner auf, die im Stammverzeichnis des Produkt eingeschlossen werden müssen. Folgende Werte werden unterstützt:
- <folderName> - Der relative Pfad zu einem Ordner, der kopiert werden soll;
- file:<fileName> - Der relative Pfad zu einer Datei, die kopiert werden soll;
- absolute:<folderName> - Der absolute Pfad zu einem Ordner, der kopiert werden soll;
- absolute:file:<fileName> - Der absolute Pfad zu einer Datei, die kopiert werden soll;
- root.<config> - Listet die Dateien und Ordner auf, die im Stammverzeichnis des Produkt eingeschlossen werden müssen,
wenn es mit einer bestimmten Konfiguration erstellt wird. 'config' besteht aus drei(3)Konfigurationssegmenten, die
durch Punkte getrennt sind;
- root.permissions.<permissionValue> - Listet die Dateien und Folder auf, für die die Zugriffsrechte mit dem Befehl 'chmod' auf den angegebenen Wert gesetzt werden sollen. Ein Verweis auf Ordner muss mit '/' enden;
- root.permissions.<config>.<permissionValue> -Listet die Dateien und Ordner auf, für die bei einer bestimmten Konfiguration die Zugriffsrechte mit dem
Befehl "chmod" auf den angegebenen Wert gesetzt werden sollen. Reference to folders must ends with '/Ein Verweis auf Ordner muss mit '/' enden;
- root.link - Listet paarweise (durch ein Komma getrennt) die Dateien und Ordner auf, für die eine symbolische Verbindung erstellt werden soll. Der erste Eintrag gibt die Quelle ("Ziel" in der Unix-Terminologie) und der zweite Eintrag den Namen des Links an;
- root.link.<config> - Listet paarweise (durch ein Komma getrennt) die Dateien und Ordner auf, für die bei einer bestimmten Konfiguration eine symbolische Verbindung erstellt werden soll. Der erste Eintrag gibt die Quelle ("Ziel" in der Unix-Terminologie) und der zweite Eintrag den Namen des Links an;
- generate.feature@<featureId> - Gibt an, dass die Quellenkomponente featureId die Quellenkomponente der Komponente ist, die als Wert dieser Eigenschaft angegeben ist.
Alle Werte nach dem ersten Komma bezeichnen Elemente, die aus dem Repository abgerufen werden sollen;
- generate.plugin@<pluginId> - Gibt an, dass das Quellen-Plug-in pluginId das Quellen-Plug-in des Plug-ins ist, das als Wert dieser Eigenschaft angegeben ist.
Das folgende Beispiel stammt aus der Datei "build.properties" der Komponente "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*