Steg vid anpassat bygge av funktioner och insticksprogram
En ny funktion i 3.2 är möjligheten för en funktion eller ett insticksprogram att lägga till anpassade steg i sitt eget bygge. De här anpassade stegen kan till exempel användas till att instrumentera bytekod efter kompilering, indexera hjälpfiler för dokumentation eller kopiera extra filer till samlingspaketet.
Om anpassade mål ska användas för en funktion eller ett insticksprogram måste egenskapen customBuildCallbacks definieras i filen build.properties för den. Värdet för den här egenskapen är platsen för en xml-fil, relativt roten för funktionen/insticksprogrammet, som innehåller de anpassade målen. Mallar med namnet customBuildCallbacks.xml
som innehåller anpassade mål som kan användas tillhandahålls i org.eclipse.pde.build/templates/plugins and
respektive org.eclipse.pde.build/templates/features. De här mallarna kan kopieras till funktionen/insticksprogrammet och ändras efter önskemål. De anpassade målen anropas med hjälp av Ant-deluppgiften med failonerror="false", så att bygget kan fortsätta om xml-filen med anpassade inte innehåller ett visst mål eller om ett fel inträffar.
Insticksprogram
Den genererade build.xml som bygger ett insticksprogram innehåller flera mål som utför specifika uppgifter. PDE-bygget gör det möjligt för insticksprogrammet att tillhandahålla för- och eftermål som anropas före och efter specifika uppgifter. Förutom eventuella Ant-egenskaper som redan är definierade kan några specifika egenskaper också överföras till varje anpassat mål. Följande mål har funktioner för anpassade återanrop:
- build.jars: Målet
build.jars anropar i följd vart och ett av de kompileringsmål som ska byggas för det här samlingspaketet. Det kan användas med målen pre.build.jars och post.build.jars som anropas före och efter att alla kompileringsmål anropas. Både för- och eftermål tillhandahålls med egenskapen build.result.folder som är den mapp som resultat av bygget kopieras till.
- Kompileringsmål:
I build.xml definieras ett kompileringsmål för varje jar-fil som byggs (till exempel @dot för själva samlingspaketet eller library.jar). Till varje kompileringsmål kan tre anpassade återanrop göras:
- pre.<compilation target>:
Anropas före källfiler kompileras. Det har följande egenskaper:
- target.folder: Den mapp där de kompilerade klassfilerna placeras
- source.folder<N>: De källmappar som innehåller den källa som ska kompileras. (till exempel source.folder1, source.folder2).
- <compilation target>.classpath: En referens till den Ant-sökvägsstruktur som innehåller den klassökväg som kommer att användas i kompileringen. (till exempel @dot.classpath, library.jar.classpath)
- post.compile.<compilation
target>: Anropas efter att källan kompilerats men innan klassfilerna jar-paketeras eller kopieras till resultatmappen för bygget.
Det tillhandahålls med samma egenskaper som målet pre.<compilation
target>.
- post.<compilation target>:
Anropas i slutet av kompileringsmålet efter att resultatet kopieras till resultatmappen för bygget. Det har följande egenskaper:
- jar.Location: Den jar-fil eller mapp som innehåller kompileringsresultatet.
- <compilation target>.classpath: En referens till den Ant-sökvägsstruktur som innehåller den klassökväg som användes i kompileringen.
- build.sources: Det här målet bygger käll-zip-filerna för vart och ett av kompileringsmålen. Det kan användas med målen pre.build.sources
och post.build.sources. Båda de här målen tillhandahålls med egenskapen build.result.folder som är den mapp som käll-zip-filerna kopieras till.
- gather.bin.parts:
Det här målet kopierar byggresultat (dvs. jar-filer och eventuella andra filer som ingår i samlingspaketet) till den slutliga målkatalogen.
Det är också det mål där versionsnamnleden ersätts i manifestfilen (se avsnittet om versionsnamnled). Det kan användas med målen pre.gather.bin.parts
och post.gather.bin.parts. Två egenskaper ingår i för- och eftermålen:
- build.result.folder: Den mapp som innehåller resultatet av bygget
- target.folder: Den målmapp som byggresultatet och insticksprogramsinnehållet kopieras till.
- gather.sources: Det här målet samlar in käll-zip-filerna för samlingspaketet. Det kan användas med målen pre.gather.sources och post.gather.sources.
Både för- och eftermål tillhandahålls med egenskapen target.folder som är den mapp som källorna kopieras till.
- gather.logs: Det här målet samlar in loggfiler från bygget. Det kan användas med pre.gather.logs och post.gather.logs. Både för- och eftermål tillhandahålls med
destination.temp.folder som är den temporära mapp som loggfilerna kopieras till.
- clean: Det här målet gör en rensning och kan användas med målen pre.clean
och post.clean.
För- och eftermålen har följande egenskaper:
- plugin.destination: Den mapp som det slutliga samlingspaketet kopierades till.
- build.result.folder: Den mapp som resultatet av bygget kopierades till.
- temp.folder: Den temporära mapp där resultatet delas upp i steg innan det kopieras til det slutliga målet.
Funktioner
Den genererade build.xml för funktioner kan endast användas med anrop för anpassade byggen för målet gather.bin.parts. Det här målet kan anropa gather.bin.parts-målet för alla ingående funktioner och insticksprogram. Det kan användas med pre.gather.bin.parts och post.gather.bin.parts. Båda de här målen har följande egenskaper:
- destination.temp.folder: Den katalog som insticksprogrammen kopieras till.
- feature.directory: Den katalog som filerna för funktionen kopieras till.