Eclipse-Komponenten erneut packen

Eclipse-Komponenten werden als Archivdateien ausgeliefert. Jedes Archiv enthält ein Gruppe aus Features und Plug-ins. Die Archive enthalten in der Regel alle Funktionen, über die eine Komponente verfügen muss. Die Konsumenten benötigen häufig mehr als eine Komponente und/oder nur Bestandteile mancher Komponenten. Ohne Unterstützung müssten die Nutzer die Archive manuell abrufen, in denen die Obermenge der von ihnen benötigten Funktionen enthalten sind, und anschließend die erforderlichen Features und Plug-ins manuell extrahieren. Diese Vorgehensweise ist aufwendig und fehleranfällig.

Glücklicherweise verfügt PDE über einen batchorientierten Mechanismus, das Packprogramm, das hierfür eine Hilfe sein kann. Das Packprogramm verfügt über eine Eingabe in Form einer Liste der Archive, in denen Features enthalten sind und über eine Liste der relevanten Features. Es ruft die komprimierten Dateien ab, extrahiert die Features (und ihre Plug-ins) und packt sie erneut in einer komprimierte Ausgabedatei.

Schnelleinstieg

Im Folgenden werden die grundlegenden Schritte für die Arbeit mit dem Packprogramm erläutert.   Es wird vorausgesetzt, dass Sie *nix-Pakete auf einer *nix-Maschine erstellen, um sicherzustellen, dass die Dateiberechtigungen erhalten bleiben.

  1. Erstellen Sie ein Konfigurationsverzeichnis für die Paketierung, und kopieren Sie die Schablonendateien ('packager.properties', 'packaging.properties' und 'customTargets.xml') aus 'org.eclipse.pde.build/templates/packager' in dieses Verzeichnis.
  2. Bearbeiten Sie die kopierten 'packager.properties'-Dateien, und stellen Sie die folgenden Eigenschaften ein:
  3. Rufen Sie die Zuordnungsdateien des Packprogramms ab.   Die folgenden Eigenschaften steuern das Herunterladen der Zuordnungsdateien:
    Das Packprogrammscript verknüpft alle Dateien mit der Erweiterung '*.map', die sich in ${downloadDirectory} befinden. Wenn Sie mehrere Zuordnungsdateien herunterladen möchten oder diese von einem CVS abrufen möchten, bearbeiten Sie die Datei 'customTargets.xml' und ändern das Ziel 'getMapFiles'.
  4. Führen Sie das Packprogramm mit Hilfe des folgenden Befehls aus:
  5. java -jar <eclipse install>/startup.jar -application org.eclipse.ant.core.antRunner 
    -buildfile <<eclipse install>/plugins/org.eclipse.pde.build_<version>/scripts/package.xml>
    -DpackagingInfo=<path to your packaging configuration directory>

Format der Zuordnungsdatei des Packprogramms

Die Zuordnungsdateien des Packprogramms werden zum Beschreiben der verschiedenen Archive, ihres Inhalts und ihrer Downloadposition verwendet.   Sie ähneln den Zuordnungsdateien, die im Verlauf des Erstellungsprozesses zum Abrufen der Produktpakete aus den Repositorys verwendet werden.   Das Format des Zuordnungsdateieintrags des Packprogramms lautet folgendermaßen:
archiveName = url | [configList] | [directory] | contentDescription | componentName

Beachten Sie, dass 'configList' und 'directory' optional sind; wichtig ist hierbei, dass noch die entsprechenden Zahlentrennzeichen '|' verwendet werden.
Beispiele:
eclipse-SDK-3.1-win32.zip=http://download.eclipse.org/downloads/drops/R-3.1-200506271435/ | win32,win32,x86 | | sdk | eclipse
eclipse-PDE-3.1.zip=http://download.eclipse.org/downloads/drops/R-3.1-200506271435/ | | | runtime | pde

Konfigurationseigenschaften des Packprogramms

Folgende Eigenschaften können in der Konfigurationsdatei 'packager.properties' des Packprogramms eingestellt werden:
baseDirectory
Das Verzeichnis, in dem die gesamte Paketierung durchgeführt wird.
workingDirectory
Das Verzeichnis, in dem die Scripts generiert werden.   Der Wert in der Schablone lautet ${baseDirectory}/workingPlace.
downloadDirectory
Der Ordner, in den die Archive heruntergeladen werden.   Der Wert in der Schablone lautet ${baseDirectory}/toPackage.
tempDirectory
Der Ordner, in den die Archive extrahiert werden.   Der Wert in der Schablone lautet ${baseDirectory}/temp.
featurePaths
Der Name des Stammverzeichnisses der heruntergeladenen Archive.   Der Wert in der Schablone lautet eclipse.
featureList
Eine durch Kommata getrennte Liste der Feature-IDs, die Sie erneut packen möchten.
componentFilter
Eine durch Kommata getrennte Liste der Komponenten, in denen sich die Features in 'featureList' befinden.   So werden die verfügbaren Archive gefiltert, und das Packprogramm kann die Anzahl der heruntergeladenen Dateien optimieren.
contentFilter
Eine durch Kommata getrennte Liste der abzurufenden Inhaltstypen.   So werden die verfügbaren Archive gefiltert, und das Packprogramm kann die Anzahl der heruntergeladenen Dateien optimieren.
config
Eine durch das Zeichen '&' getrennte Liste der Konfigurationen (durch Kommata getrennte Dreifachangaben aus Betriebssystem, Fenstertechniksystem und Architektur), die erneut gepackt werden sollen.   (Beispiel: win32, win32, x86 & linux, gtk, x86).
archivesFormat
Die Formate der Archive.   Eine durch das Zeichen '&' getrennte Liste der Konfigurationen und Formate.   (Beispiel: win32, win32, x86 - antZip & linux, gtk, ppc - tar).   Wenn kein Archivformat für eine konkrete Konfiguration angegeben wird, ist 'antZip' das Standardformat.
zipargs
Zusätzliche Argumente, die zum Komprimieren übergeben werden.
unzipargs
Zusätzliche Argumente, die zum Dekomprimieren übergeben werden.
archivePrefix
Das Präfix der resultierenden Archive.
collectingFolder
Der Name des Stammordners des resultierenden Archivs.
buildId
Steuert die Erstellungs-ID im Standardnamen des Archivs.
buildType
Typ der Erstellung; wird zum Benennen der Ausgabedaten der Erstellung verwendet.   In der Regel einer der Werte 'I', 'N', 'M' oder 'S'.
buildLabel
Bezeichnung für die Erstellung.   Der Schablonenwert ist ${buildType}.${buildId}.
archiveNamePrefix
Steuert den Namen des resultierenden Archivs.   Der Standardwert hierfür lautet ${buildId}.
packagingProperties
Der relative Pfad zu der Datei, in der die Eigenschaften zum Verpacken der Stammdateien enthalten sind.   Der Pfad zeigt standardmäßig auf die Datei 'packaging.properties'.
deltaPack
Gibt an, ob ein Deltapack generiert werden soll.   Dadurch werden plattformunabhängige Bestandteile ausgeschlossen und alle Konfigurationen in einem Archiv zusammengefasst.

Stammdateien packen

In der Konfigurationsdatei 'packager.properties' des Packprogramms zeigt die Eigenschaft 'packagingProperties' auf eine Eigenschaftendatei, in der die Stammdateien angegeben sind, die gepackt werden müssen.   Diese Datei ist standardmäßig die Datei 'packaging.properties'.

In dieser Eigenschaftendatei müssen die Eigenschaften enthalten sein, die die erforderlichen Stammdateien angeben.   Einzelheiten zu den Stammeigenschaften finden Sie auf der Seite Spezifische Eigenschaften von Komponenten.