Eclipse-componenten inpakken

Eclipse-componenten worden geleverd als archiefbestanden. Elk archief bevat een verzameling features en plugins. Doorgaans bevat een archief alle functies die een bepaalde component aanbiedt. Vaak hebben consumenten meer dan één onderdeel nodig en/of alleen delen van bepaalde componenten. Zonder ondersteuning zouden consumenten de archieven met de superset van de functie die zij nodig hebben handmatig moeten ophalen en vervolgens de vereiste features en plugins extraheren. Dit kan een moeizaam proces zijn, dat gevoelig is voor fouten.

Gelukkig bevat PDE een batch-georiënteerd mechanisme, de packager, die hulp kan bieden. In het kort: de packager neemt een lijst met archieven met features en een lijst met interessante features als invoer. Vervolgens haalt de packager de ZIP-bestanden op, extraheert de features (en hun plugins) en pakt deze vervolgens opnieuw in een ZIP-uitvoerbestand in.

Snel beginnen

Hieronder ziet u een aantal basisstappen waarmee u aan de slag kunt gaan met de packager.  Het wordt aanbevolen dat u *nix-pakketten op een *nix-computer opbouwt, zodat u zeker weet dat bestandsmachtigingen behouden blijven.

  1. Maak een configuratiedirectory voor de packager en kopieer de sjabloonbestanden (packager.properties, packaging.properties en customTargets.xml) uit org.eclipse.pde.build/templates/packager hier naartoe.
  2. Bewerk de gekopieerde packager.properties-bestanden en stel de volgende eigenschappen in:
  3. Packagertoewijzingsbestanden ophalen.  Het downloaden van de toewijzingsbestanden wordt door de volgende eigenschappen bepaald:
    Het packagerscript voegt alle *.map-bestanden samen die in ${downloadDirectory} worden gevonden. Als u meer dan één toewijzingsbestand wilt downloaden of toewijzingsbestanden uit CVS wilt ophalen, bewerkt u het bestand customTargets.xml en wijzigt u het doel getMapFiles.
  4. Voer de packager uit met behulp van de volgende opdracht:
  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=<pad naar de configuratiedirectory voor het inpakken>

Indeling van packagertoewijzingsbestanden

De packagertoewijzingsbestanden worden gebruikt voor het beschrijven van de verschillende archieven, hun content en de locatie waarvan ze kunnen worden gedownload.  Ze zijn vergelijkbaar met de toewijzingsbestanden die worden gebruikt in het buildproces om bundels uit repository's op te halen.  De indeling van een packagertoewijzingsbestand is als volgt:
archiveName = url | [configList] | [directory] | contentDescription | componentName

ConfigList en directory zijn optioneel. Het is belangrijk dat het juiste aantal scheidingstekens ("|") gebruikt blijft worden.
Voorbeelden:
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

Configuratie-eigenschappen van de packager

De volgende eigenschappen kunnen in het packagerconfiguratiebestand packager.properties worden ingesteld:
baseDirectory
De directory waarin alle in- en uitpakbewerkingen worden uitgevoerd.
workingDirectory
De directory waarin de scripts worden gegenereerd. De waarde in de sjabloon is ${baseDirectory}/workingPlace
downloadDirectory
De map waarnaar de archieven worden gedownload.  De waarde in de sjabloon is ${baseDirectory}/toPackage
tempDirectory
De map waarnaar de archieven worden geëxtraheerd.  De waarde in de sjabloon is ${baseDirectory}/temp
featurePaths
De naam van de hoofdmap van de gedownloade archieven.  De waarde in de sjabloon is eclipse.
featureList
Een door komma's gescheiden lijst met feature-ID's die u opnieuw wilt verpakken.
componentFilter
Een door komma's gescheiden lijst met componenten waarin de features in featureList kunnen worden gevonden.  Hiermee worden de beschikbare archieven gefilterd en krijgt de packager de mogelijkheid om de set gedownloade bestanden te optimaliseren.
contentFilter
Een door komma's gescheiden lijst met op te halen contenttypen.  Hiermee wordt de set met beschikbare archieven gefilterd en krijgt de packager de mogelijkheid om de set gedownloade bestanden te optimaliseren.
config
Een door "&" gescheiden lijst met opnieuw te verpakken configuraties (door komma's gescheiden waarden voor besturingssysteem, Windows-systeem en architectuur).  (bijvoorbeeld: win32, win32, x86 & linux, gtk, x86)
archivesFormat
De indelingen van de archieven.  Een door "&" gescheiden lijst met configuratie - indeling.  (Bijvoorbeeld: win32, win32, x86 - antZip & linux, gtk, ppc - tar).  Als geen archiefindeling is opgegeven voor een bepaalde configuratie, is de standaardwaarde antZip.
zipargs
Extra argumenten die aan zip worden doorgegeven.
unzipargs
Extra argumenten die aan unzip worden doorgegeven.
archivePrefix
Het voorvoegsel van het resulterende archief/de resulterende archieven.
collectingFolder
De naam van de hoofdmap van het resulterende archief.
buildId
Bepaalt de build-ID in de standaardnaam van het archief.
buildType
Het type van de build, dat voor het benoemen van de builduitvoer wordt gebruikt.  Doorgaans is dit I, N, M, S, ...
buildLabel
Het label van de build.  De sjabloonwaarde is ${buildType}.${buildId}
archiveNamePrefix
Bepaalt de naam van het resulterende archief.  De standaardwaarde hiervan is ${buildId}
packagingProperties
Een relatief pad naar het bestand met de hoofdeigenschappenbestanden voor het inpakken.  Standaard wijst dit naar packaging.properties.
deltaPack
Geeft aan of er wel of niet een deltapakket wordt gegenereerd.  Hiermee worden platformonafhankelijke delen uitgesloten en worden alle configuraties in één archief gegroepeerd.

Hoofdbestanden voor inpakken

In het configuratiebestand packager.properties van de packager verwijst de eigenschap packagingProperties naar een eigenschappenbestand waarin de hoofdbestanden worden aangegeven die moeten worden ingepakt.  Standaard is dit het bestand packaging.properties.

Dit eigenschappenbestand moet de eigenschappen bevatten die de vereiste hoofdbestanden aangeven.  Zie de paginaSpecifieke eigenschappen voor features voor meer informatie over de eigenschappen van hoofdbestanden.