Trin til tilpasset bygning af funktioner og plugins
En nyhed i 3.2 er, at en funktion eller plugin kan føje tilpassede trin til sin egen bygning. Disse tilpassede trin kan f.eks. benyttes til oprettelse af bytekode efter kompilering, indeksering af Hjælp-filer til dokumentation eller til kopiering af ekstra filer til bundtet.
Hvis der skal benyttes tilpassede mål, skal en funktion eller plugin definere egenskaben customBuildCallbacks i filen build.properties. Værdien af denne egenskab er den relative placering af en xml-fil, der indeholder de tilpassede mål, i forhold til roden af funktionen eller plugin'en. Der findes skabeloner med navnet customBuildCallbacks.xml, som indeholder de understøttede tilpassede mål, i henholdsvis org.eclipse.pde.build/templates/plugins og
org.eclipse.pde.build/templates/features. Disse skabeloner kan kopieres til funktionen eller plugin'en og redigeres efter behov. De tilpassede mål startes ved hjælp af opgaven subant med failonerror="false", så bygningen fortsætter, selvom den tilpassede xml-fil ikke indeholder et bestemt mål, eller der opstår en fejl.
Plugins
Den genererede build.xml, der bygger en plugin, indeholder flere mål, som udfører bestemte opgaver. PDE Build tillader, at plugin'en stiller tilpassede pre- og post-mål til rådighed, som kaldes før og efter bestemte opgaver. Ud over eventuelle ant-egenskaber, som muligvis er defineret allerede, kan der overføres specifikke egenskaber til hvert tilpasset mål. Følgende mål understøtter tilpassede tilbagekald:
- build.jars: Målet build.jars starter selv hvert af de kompileringsmål, der bygges til bundtet. Det understøtter pre.build.jars- og post.build.jars-mål, der kaldes, før og efter alle kompileringsmålene er kaldt.
Både pre- og post-mål stilles til rådighed med egenskaben build.result.folder, der er den folder, som resultaterne af bygningen kopieres til.
- Kompileringsmål:
Filen build.xml definerer et kompileringsmål for hver jar-fil, der bygges (f.eks. @dot til selve bundtet eller library.jar). Hvert kompileringsmål understøtter 3 tilpassede tilbagekald:
- pre.<kompileringsmål>:
Kaldes, før kildefilerne kompileres. Det stilles til rådighed med følgende egenskaber:
- target.folder: Den folder, hvor de kompilerede klassefiler placeres.
- source.folder<N>: Den eller de kildefoldere, der indeholder den kilde, som skal kompileres (f.eks. kilde.folder1, kilde.folder2
osv.).
- <kompilationsmål>.classpath: En reference til ant-stistrukturen med den Classpath, der benyttes til kompileringen (f.eks. @dot.classpath, library.jar.classpath).
- post.compile.<kompileringsmål>: Kaldes, efter at kilden er kompileret, men før klassefilerne samles i jar-filer eller kopieres til byggeresultatfolderen.
Det stilles til rådighed med de samme egenskaber som pre.<kompileringsmål>-målet.
- post.<kompileringsmål>:
Kaldes sidst i kompileringsmålet, efter at resultaterne er kopieret til byggeresultatfolderen. Det stilles til rådighed med følgende egenskaber:
- jar.Location: Den jar-fil eller folder, der indeholder kompileringsresultaterne.
- <kompileringsmål>.classpath: En reference til den ant-stistruktur, der indeholder den Classpath, som blev benyttet til kompileringen.
- build.sources: Dette mål bygger kilde-zip-filerne til hvert af kompileringsmålene. Det understøtter pre.build.sources- og post.build.sources-mål. Begge disse mål stilles til rådighed med egenskaben build.result.folder, der er den folder, som kilde-zip-filerne kopieres til.
- gather.bin.parts:
Dette mål kopierer byggeresultaterne (dvs. jar-filerne og andre filer i bundtet) til det endelige destinationsbibliotek.
Det er også det mål, hvor versionskvalifikatorer erstattes i manifestfilen (se under Versionskvalifikatorer). Det understøtter pre.gather.bin.parts- og post.gather.bin.parts-mål. Der stilles to egenskaber til rådighed for pre- og post-mål:
- build.result.folder: Den folder, der indeholder resultaterne af bygningen.
- target.folder: Den destinationsfolder, som byggeresultaterne og bundtindholdet kopieres til.
- gather.sources: Dette mål samler kilde-zip-filerne til bundtet. Det understøtter pre.gather.sources- og post.gather.sources-mål.
Både pre- og post-målene stilles til rådighed med egenskaben target.folder, som er den mappe, kilderne kopieres til.
- gather.logs: Dette mål samler logfilerne fra bygningen. Det understøtter pre.gather.logs og post.gather.logs. Både pre- og post-målene stilles til rådighed med destination.temp.folder, der er den midlertidige folder, som logfilerne kopieres til.
- clean: Dette mål udfører en oprydning. Det understøtter pre.clean- og post.clean-mål.
Pre- og post-målene har følgende egenskaber:
- plugin.destination: Den folder, det endelige bundt blev kopieret til.
- build.result.folder: Den folder, som resultaterne af bygningen blev kopieret til.
- temp.folder: Den midlertidige folder, hvor resultaterne blev placeret, før de blev kopieret til den endelige destination.
Funktioner
Den genererede build.xml til funktioner understøtter kun tilpassede byggetilbagekald for gather.bin.parts-mål. Dette mål starter gather.bin.parts-målet for alle de inkluderede funktioner og plugins. Det understøtter pre.gather.bin.parts og post.gather.bin.parts. Begge disse mål stilles til rådighed med følgende egenskaber:
- destination.temp.folder: Det bibliotek, som plugins kopieres til.
- feature.directory: Det bibliotek, som filer til funktionen kopieres til.