Προσαρμοσμένα βήματα δόμησης λειτουργιών και πρόσθετων
λειτουργιών
Στο 3.2, υπάρχει η νέα δυνατότητα για μια λειτουργία ή πρόσθετη λειτουργία
συνεισφοράς προσαρμοσμένων βημάτων στη δική του δόμηση. Αυτά τα
προσαρμοσμένα βήματα μπορούν να χρησιμοποιηθούν για λειτουργίες όπως
ενοργάνωση byte-code μετά τη μεταγλώττιση, ευρετηριοποίηση αρχείων βοήθειας
για τεκμηρίωση ή αντιγραφή πρόσθετων αρχείων στη δέσμη.
Για να χρησιμοποιήσετε προσαρμοσμένους προορισμούς, μια λειτουργία ή
πρόσθετη
λειτουργία πρέπει να ορίσει την ιδιότητα customBuildCallbacks στο
αρχείο build.properties. Η τιμή αυτής της ιδιότητας είναι η τοποθεσία ενός
αρχείου xml, σχετική με τη ρίζα της λειτουργίας/πρόσθετης λειτουργίας
που περιέχει τους προσαρμοσμένους προορισμούς. Tα πρότυπα με το όνομα
customBuildCallbacks.xml που
περιέχουν τους υποστηριζόμενους προσαρμοσμένους προορισμούς παρέχονται
στο org.eclipse.pde.build/templates/plugins και το org.eclipse.pde.build/templates/features αντίστοιχα. Αυτά τα πρότυπα
μπορούν να αντιγραφούν στη λειτουργία/πρόσθετη λειτουργία σας και να
τροποποιηθούν όπως χρειάζεται. Οι προσαρμοσμένοι προορισμοί θα
κληθούν χρησιμοποιώντας την εργασία subant με failonerror="false", ώστε η δόμηση να
συνεχιστεί αν το προσαρμοσμένο αρχείο xml δεν περιέχει ένα συγκεκριμένο
προορισμό ή συμβεί ένα σφάλμα.
Πρόσθετες λειτουργίες
Το δημιουργημένο build.xml που δημιουργεί μια πρόσθετη λειτουργία περιέχει
πολλούς προορισμούς που εκτελούν συγκεκριμένες εργασίες. Η δόμηση PDE
επιτρέπει στην πρόσθετη λειτουργία να παρέχει προσαρμοσμένους προ- και μετα-
προορισμούς που θα καλούνται πριν και μετά από συγκεκριμένες εργασίες. Μαζί με
άλλες ιδιότητες ant που μπορεί ήδη να έχουν καθοριστεί, σε κάθε
προσαρμοσμένο προορισμό μπορούν επίσης να μεταβιβαστούν κάποιες
συγκεκριμένες
ιδιότητες. Οι ακόλουθοι προορισμοί υποστηρίζουν προσαρμοσμένες
επανακλήσεις:
- build.jars: Ο
προορισμός build.jars θα καλέσει με τη σειρά κάθε έναν από τους
προορισμούς μεταγλώττισης
που θα δημιουργηθεί για αυτή τη δέσμη. Υποστηρίζει τους προορισμούς
pre.build.jars και post.build.jars που καλούνται πριν και
μετά την κλήση όλων των προορισμών μεταγλώττισης.
Τόσο οι προ- όσο και οι μετα- προορισμοί παρέχονται με την ιδιότητα
build.result.folder που είναι ο φάκελος στον οποίο θα αντιγραφούν
τα αποτελέσματα της δόμησης.
- Προορισμοί μεταγλώττισης:
Tο build.xml καθορίζει ένα προορισμό μεταγλώττισης για κάθε αρχείο jar που
δομείται (π.χ. @dot για την ίδια τη δέσμη, ή library.jar). Κάθε
προορισμός μεταγλώττισης υποστηρίζει 3 προσαρμοσμένες επανακλήσεις:
- pre.<compilation target>:
Καλείται πριν από τη μεταγλώττιση των αρχείων πρωτογενούς κώδικα.
Παρέχεται με τις ακόλουθες ιδιότητες:
- target.folder: Ο φάκελος όπου θα τοποθετηθούν τα
μεταγλωττισμένα αρχεία κλάσης
- source.folder<N>: Οι φάκελοι πρωτογενούς κώδικα
που περιέχουν τον πρωτογενή κώδικα που πρέπει να μεταγλωττιστεί. (π.χ. source.folder1, source.folder2,
κλπ).
- <compilation target>.classpath: Μία παραπομπή
στη δομή διαδρομής ant που περιέχει τη διαδρομή κλάσεων, η οποία θα
χρησιμοποιηθεί στη μεταγλώττιση. (π.χ. @dot.classpath,
library.jar.classpath)
- post.compile.<compilation
target>: Καλείται μετά τη μεταγλώττιση του πρωτογενούς
κώδικα, αλλά πριν από τη μετατροπή των αρχείων κλάσης σε jar ή την αντιγραφή
τους στον φάκελο αποτελέσματος δόμησης.
Παρέχεται με τις ίδιες ιδιότητες όπως ο προορισμός pre.<compilation
target>.
- post.<compilation target>:
Καλείται στο τέλος του προορισμού μεταγλώττισης μετά την αντιγραφή των
αποτελεσμάτων στον φάκελο αποτελέσματος δόμησης. Παρέχεται με τις
ακόλουθες ιδιότητες:
- jar.Location: Tο αρχείο jar ή ο φάκελος που περιέχει τα
αποτελέσματα μεταγλώττισης.
- <compilation target>.classpath: Μία παραπομπή
στη δομή διαδρομής ant που περιέχει τη διαδρομή κλάσεων, η οποία
χρησιμοποιήθηκε στη μεταγλώττιση.
- build.sources: Αυτός ο
προορισμός δημιουργεί τα αρχεία zip πρωτογενούς κώδικα για κάθε έναν
προορισμό
μεταγλώττισης. Υποστηρίζει τους προορισμούς pre.build.sources
και post.build.sources. Και οι
δύο προορισμοί παρέχονται με την ιδιότητα
build.result.folder που είναι ο φάκελος στον οποίο θα αντιγραφούν τα αρχεία zip
πρωτογενούς κώδικα.
- gather.bin.parts:
Αυτός ο προορισμός αντιγράφει τα αποτελέσματα δόμησης (π.χ. τα αρχεία jar και
άλλα αρχεία που περιλαμβάνονται στη δέσμη) στον τελικό κατάλογο προορισμού.
Είναι επίσης ο προορισμός όπου τα προσδιοριστικά εκδοχής αντικαθίστανται στο
αρχείο δήλωσης (ανατρέξτε
στο Προσδιοριστικά εκδοχής).
Υποστηρίζει τους προορισμούς
pre.gather.bin.parts και
post.gather.bin.parts. Δύο
ιδιότητες παρέχονται στους προ- και μετα- προορισμούς:
- build.result.folder: ο φάκελος που περιέχει τα
αποτελέσματα της δόμησης
- target.folder: ο φάκελος προορισμού στον οποίο καταλήγει
η δόμηση και αντιγράφονται τα περιεχόμενα δέσμης.
- gather.sources: Αυτός ο
προορισμός συγκεντρώνει τα αρχεία zip πρωτογενούς κώδικα για τη δέσμη.
Υποστηρίζει τους προορισμούς pre.gather.sources και post.gather.sources.
Τόσο οι προ- όσο και οι μετα- προορισμοί παρέχονται με την ιδιότητα
target.folder που είναι ο φάκελος στον οποίο αντιγράφονται οι πρωτογενείς
κώδικες.
- gather.logs: Αυτός ο
προορισμός συγκεντρώνει τα αρχεία καταγραφής από τη δόμηση. Υποστηρίζει
τους προορισμούς pre.gather.logs και post.gather.logs. Τόσο οι προ- όσο και
οι μετα- προορισμοί παρέχονται με το destination.temp.folder που είναι ο
προσωρινός φάκελος στον οποίο αντιγράφονται τα αρχεία καταγραφής.
- clean: Αυτός ο
προορισμός εκτελεί εκκαθάριση, υποστηρίζει τους προορισμούς pre.clean
και post.clean.
Οι προ- και μετα- προορισμοί έχουν τις ακόλουθες ιδιότητες:
- plugin.destination: Ο φάκελος στον οποίο αντιγράφηκε η
τελική δέσμη.
- build.result.folder: Ο φάκελος στον οποίο αντιγράφηκαν
τα αποτελέσματα της δόμησης
- temp.folder: Ο προσωρινός φάκελος όπου έγινε δοκιμή των
αποτελεσμάτων πριν από την αντιγραφή τους στον τελικό προορισμό.
Λειτουργίες
Το δημιουργημένο build.xml για λειτουργίες υποστηρίζει μόνο ανακλήσεις
προσαρμοσμένης δόμησης για τον προορισμό gather.bin.parts. Αυτός ο
προορισμός θα καλέσει τον προορισμό gather.bin.parts όλων των
συμπεριλαμβανομένων λειτουργιών και πρόσθετων λειτουργιών. Υποστηρίζει
pre.gather.bin.parts και post.gather.bin.parts. Και οι δύο αυτοί
προορισμοί παρέχονται με τις ακόλουθες ιδιότητες:
- destination.temp.folder: Ο κατάλογος όπου θα αντιγραφούν
οι πρόσθετες λειτουργίες.
- feature.directory: Ο κατάλογος όπου θα αντιγραφούν τα
αρχεία για αυτή τη λειτουργία.