PDE-byggeintegration med p2

Denne side beskriver en forældet metode til integration med p2. På siden Byg p2-opbevaringssteder og -produkter" finder du de anbefalede metoder til at bygge med p2. De egenskaber, der er beskrevet herunder, fungerer ved hjælp af et bagudkompatibilitetslag og understøtter ikke nye funktioner, der er tilføjet til p2-publiceringsfunktionen.

På siden Generating p2 metadata (Generering af p2-metadata) i Platform Plugin-in Developer Guide findes flere oplysninger om generering af p2-metadata. I sig selv er generering af metadata ikke tilstrækkeligt til at oprette et p2-aktiveret produkt. Det kræver, at du udfører en egentlig p2-installation fra de genererede metadata. I dokumentationen til p2-styring findes oplysninger om, hvordan denne installation foretages fra et hovedløst script.

Det er muligt at generere p2-metadata med manuelle kald til p2-metadatageneratoren i en hvilken som helst brugerdefineret opgave i PDE/Build (se Tilpas et hovedløst byg). PDE/Build stiller imidlertid integration med p2 til rådighed via følgende egenskaber:

generate.p2.metadata
(FORÆLDET, brug p2.gathering i stedet for) Angiv til true for at aktivere generering af p2-metadata. ANT-scripts er baseret på eksistensen af denne egenskab og ikke værdien. Hvis du vil deaktivere generering af metadata, skal egenskaben fjernes, og ikke bare angives til false.
I byggescriptene genereres kald til p2-mål, når p2-bundtet org.eclipse.equinox.p2.metadata.generator og dets afhængigheder er til stede i den Eclipse-installation, der udfører bygningen. Disse p2-mål afhænger af egenskaben generate.p2.metadata.
p2.metadata.repo
p2.artifact.repo
Angiv en file:-URI, som angiver placeringen af p2-metadataene og de artefaktopbevaringssteder, der skal publiceres til. Det er almindeligt, men ikke nødvendigt, at artefaktopbevaringsstedet bruger samme placering som metadataopbevaringsstedet.
Eksempel:
			p2.metadata.repo=file:${buildDirectory}/repository
			p2.artifact.repo=file:${buildDirectory}/repository
			
p2.metadata.repo.name
p2.artifact.repo.name
Valgfrit. Angiver navnet på de genererede p2-opbevaringssteder.
Hvis der bruges et opbevaringssted, der allerede findes, ændres opbevaringsstedets nuværende navn ikke. Hvis navnet ikke angives, tildeles opbevaringsstederne et navn ud fra deres placering.
p2.flavor
Angiv udgaven af p2-metadataene. Når der genereres metadata for Eclipse SDK, bruges udgaven "tooling".
p2.publish.artifacts
Angiv til true for at udgive JAR-filer i artefaktopbevaringsstedet. Hvis parameteren angives til false, bliver der genereret artefaktmetadata, men JAR-filerne kopieres ikke til artefaktopbevaringsstedet. ADVARSEL: Når true angives, skal du sørge for, at p2.artifact.repo ikke har samme placering som de assembleringsbiblioteker, der bruges af PDE/Build. I modsat fald kan JAR-filer ende med at blive slettet!
p2.root.name
p2.root.version
Angiv navn og version på den rod-IU, der vil indeholde alt, der blev bygget.
Hvis der er angivet en .product-fil i bygningen, bliver disse egenskaber ignoreret. Når der findes en .product-fil, bliver rodnavn og version produkt-id og version fra .product-ffilen. Der er flere oplysninger nedenfor.

Generér metadata til produkter

Når der udføres en bygning med en produktfil angivet i build.properties-filen på byggekonfigurationens øverste niveau (både i bygninger, der bruger productBuild.xml og den normale build.xml), vil PDE/Build automatisk generere metadata for dette produkt.

Ud over at der oprettes installérbare enheder for alle funktionerne og bundterne, vil det også oprette følgende installérbare enheder (IU'er) til produktet:

Med alle disse genererede installérbare enheder er det muligt at bruge p2 til at installere hele produktet ud fra opbevaringsstedet.

Oplysningerne

PDE/Build kalder grundlæggende den opgave til generering af metadata, som leveres af p2 på bestemte tidspunkter under bygningen. Det er sandsynligt, at der aldrig under en bygning er et enkelt tidspunkt, hvor alle byggeartefakter findes på disken på samme sted. Det ville derfor være nødvendigt enten at kalde p2-metadatageneratoren til de endelige arkiver, eller, som en optimering, kalde den flere gange i løbet af bygningen.

Generering af metadata finder sted i alle assemblerings- og pakkefaser. Det gælder både for normale bygninger og packager-bygninger. Eksempel: Til en produktbygning ved hjælp af productBuild.xml vil følgende scripts blive genereret (idet følgende antages: configs=win32,win32,x86 & linux,gtk,ppc):

Assembleringsscripts indsamler funktioner og plugins, der er bygget sammen med de tilknyttede rodfiler. Package-scripts indsamler binære funktioner og plugins, der er bygget i forvejen. De platformspecifikke scripts samler delene til de særlige konfigurationer, og "all"-scriptene delegerer til hvert af de platformspecifikke scripts.

Kald til p2-generering foregår som følger:

  1. assemble win32.win32.x86: Generér metadata til indsamlede funktioner og plugins for Windows.
  2. assemble win32.win32.x86: Andet kald til genererede metadata til indsamlede rodfiler for Windows.
  3. assemble linux.gtk.ppc: Generér metadata til indsamlede funktioner og plugins for Linux.
  4. assemble linux.gtk.ppc: Andet kald til genererede metadata til indsamlede rodfiler for Linux.
  5. assemble all: Hvis packager ikke udføres: Generér metadata til en installérbar rodenhed, der inkluderer alt ovenfor.
  6. package win32.win32.x86: Generér metadata til pakkede funktioner og plugins for Windows.
  7. package win32.win32.x86: Andet kald til genererede metadata til rodfiler fra pakning for Windows.
  8. package linux.gtk.ppc: Generér metadata til pakkede funktioner og plugins for Linux.
  9. package linux.gtk.ppc: Andet kald til genererede metadata til rodfiler fra pakning for Linux.
  10. package all: Generér metadata til en installérbar rodenhed, der inkluderer alt ovenfor.

Generatoren af p2-metadata understøtter trinvis generering, hvor hvert kald til de genererede p2-metadata udføres med mode=incremental, og det afsluttende kald for at generere den installérbare rodenhed udføres med mode="final".