Trin til tilpasset bygning af funktioner og plugins
En nyhed i 3.2 er, at en funktion eller plugin kan tilføje tilpassede
ant-mål til sin egen bygning.Disse tilpassede trin kan f.eks. benyttes til
oprettelse af bytekode efter kompilering, indeksering af hjælpefiler 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. Hvis xml-filen er placeret et andet sted, skal du bruge egenskaben
customBuildCallbacks.buildpath til at angive det bibliotek, der skal anvendes.
Der findes skabeloner med navnet
customBuildCallbacks.xml, som
indeholder de understøttede tilpassede mål, i 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. Som standard er
failonerror angivet til false. Du kan ændre dette ved at
angive egenskaben customBuildCallbacks.failonerror som sand. Parameteren
inheritall er ligeledes angivet til false som standard. Angiv egenskaben customBuildCallbacks.inheritall for at ændre dette.
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:
- 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 folder, 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.