Trinn i tilpasset bygging av funksjoner og plugin-moduler
En nyhet i
3.2 er muligheten en funksjon eller plugin-modul har til å oppgi tilpassede trinn i
egen bygging. Disse tilpassede
trinnene kan brukes til saker som instrumentering av bytekode etter kompilering,
indeksering av hjelpefiler til dokumentasjon eller kopiering av ekstrafiler til bunten.
Hvis du vil bruke
tilpassede mål, må en funksjon eller plugin-modul definere egenskapen
customBuildCallbacks i sin egen build.properties-fil. Verdien av denne egenskapen er plasseringen av
en xml-fil, i forhold til roten av funksjonen/plugin-modulen, som inneholder de tilpassede målene. Maler
kalt customBuildCallbacks.xml
som inneholder de støttede tilpassede målene, finnes i henholdsvis org.eclipse.pde.build/templates/plugins
og org.eclipse.pde.build/templates/features. Disse malene
kan kopieres til feature/plug-in og endres etter behov. De
tilpassede målene blir aktivert ved hjelp av subant-oppgaven med failonerror="false",
slik at byggingen fortsetter hvis den tilpassede xml-filen ikke inneholder et
bestemt tilpasset mål eller det forekommer en feil.
Plugin-moduler
Den genererte
build.xml som bygger en plugin-modul, inneholder flere mål som utfører
bestemte oppgaver. Med PDE Build
kan plugin-modulen sørge for tilpassede pre- og post-mål som det blir sendt kall
til før og etter bestemte oppgaver. I tillegg til
eventuelle Ant-egenskaper som allerede kan være definert, må det også sendes et par spesifikke
egenskaper til hvert tilpassede mål. De følgende
målene støtter tilpassede tilbakekall:
- build.jars:
Målet build.jars aktiverer hvert kompileringsmål som blir bygd for denne bunten. Det støtter målene pre.build.jars og post.build.jars, som det blir sendt kall til før og etter at
det er sendt kall til alle kompileringsmålene. Både
pre- og post-målene er oppgitt med egenskapen build.result.folder, som er mappen som resultatene
av byggingen skal kopieres til.
- Kompileringsmål:
Build.xml definerer et kompileringsmål for hver jar-fil som bygges (for eksempel
@dot for selve bunten, eller library.jar). Hvert
kompileringsmål støtter 3 tilpassede tilbakekall:
- pre.<compilation target>: Kalles
før kildefilene blir kompilert. Det har
disse egenskapene:
- target.folder:
Mappen der de kompilerte klassefilene blir plassert.
- source.folder<N>:
Kildemappen(e) som inneholder kilden som skal kopieres. (For
eksempel source.folder1, source.folder2 etc.)
- <compilation target>.classpath:
En referanse til ant-banestrukturen som inneholder klassebanen som skal brukes
i kompileringen. (For
eksempel @dot.classpath, library.jar.classpath)
- post.compile.<compilation target>:
Kalles etter at kilden er kompilert, men før klassefilene blir lagt i jar-filer eller kopiert til
byggeresultatmappen. Det har
de samme egenskapene som målet pre.<compilation target>.
- post.<compilation target>:
Kalles på slutten av kompileringsmålet etter at resultatene er kopiert til
byggeresultatmappen. Det har
disse egenskapene:
- jar.Location:
Jar-filen eller mappen som inneholder kompileringsresultatene.
- <compilation target>.classpath:
En referanse til ant-banestrukturen som inneholder klassebanen som ble brukt i kompileringen.
- build.sources:
Dette målet bygger kilde-zip-filene for hvert kompileringsmål. Det støtter
målene pre.build.sources
og post.build.sources. Begge
disse målene har egenskapen build.result.folder, som er mappen som kilde-zip-filene
skal kopieres til.
- gather.bin.parts:
Dette målet kopierer byggeresultatene (det vil si jar-filer og hvilke som helst andre filer som
er inkludert i bunten) til den endelige målkatalogen. Det er
også målet der versjonskvalifikatorene blir erstattet i manifestfilen
(se Versjonskvalifikatorer). Det støtter
målene pre.gather.bin.parts
og post.gather.bin.parts. Det finnes
to egenskaper for pre- og post-målene:
- build.result.folder:
Mappen som inneholder resultatene av byggingen.
- target.folder:
Målmappen som byggeresultatene og buntinnholdet skal kopieres til.
- gather.sources:
Dette målet samler kilde-zip-filene for bunten. Det
støtter målene pre.gather.sources og post.gather.sources. Både
pre- og post-målene har egenskapen target.folder, som er mappen som kildene skal kopieres til.
- gather.logs:
Dette målet samler loggfilene fra byggingen. Det støtter pre.gather.logs og post.gather.logs. Både
pre- og post-målene har destination.temp.folder, som er den
midlertidige mappen som loggfilene skal kopieres til.
- clean:
Dette målet utfører en rydding. Det støtter målene
pre.clean og
post.clean. Pre- og
post-målene har disse egenskapene:
- plugin.destination:
Mappen som den endelige bunten ble kopiert til.
- build.result.folder:
Mappen som resultatene av byggingen ble kopiert til.
- temp.folder:
Den midlertidige mappen der resultatene ble utført i rekkefølge før de ble kopiert til
det endelige målet.
Funksjoner
Den genererte
build.xml for funksjoner støtter bare tilbakekall ved tilpassede bygginger for
målet gather.bin.parts. Dette
målet aktiverer målet gather.bin.parts for alle de inkluderte funksjonene og
plugin-modulene. Det støtter
pre.gather.bin.parts og post.gather.bin.parts. Begge
disse målene har de følgende egenskapene:
- destination.temp.folder:
Katalogen som plugin-modulene skal kopieres til.
- feature.directory:
Katalogen som filene for denne funksjonen skal kopieres til.