Συνεισφορά εργασιών και ειδών

Όταν η πρόσθετη λειτουργία σάς συνεισφέρει εργασίες και είδη Ant, οι εργασίες και τα είδη έχουν πρόσβαση σε όλες τις κλάσεις εντός της συνεισφέρουσας πρόσθετης λειτουργίας. Για παράδειγμα, η εργασία eclipse.refreshLocal που συνεισφέρεται από την πρόσθετη λειτουργία org.eclipse.core.resources αποτελεί ένα wrapper για τη μέθοδο IResource.refreshLocal().

Οι εργασίες και τα είδη που συνεισφέρονται από πρόσθετες λειτουργίες δεν πρέπει να τοποθετούνται μέσα σε βιβλιοθήκες των πρόσθετων λειτουργιών. Πρέπει να βρίσκονται σε ένα ξεχωριστό JAR. Αυτό σημαίνει ότι οι κλάσεις των πρόσθετων λειτουργιών δεν έχουν πρόσβαση στις εργασίες και τα είδη που παρέχονται από την πρόσθετη λειτουργία.  (Δείτε την ενότητα Για ποιο λόγο χρειάζεται ξεχωριστό JAR για εργασίες και είδη για περισσότερες πληροφορίες.)

Το σημείο επέκτασης org.eclipse.ant.core.antTasks παρέχει ένα παράδειγμα του τρόπου προσδιορισμού μιας νέας εργασίας στο αρχείο plugin.xml.

Λειτουργίες παρακολούθησης προόδου

Η υποστήριξη Ant του Eclipse παρέχει πρόσβαση σε ένα IProgressMonitor εάν έχει μεταβιβαστεί κάποιο κατά την κλήση του AntRunner. Ένα από τα πλεονεκτήματα της πρόσβασης σε μια λειτουργία παρακολούθησης προόδου είναι ότι μια χρονοβόρα εργασία μπορεί να ελέγξει εάν ο χρήστης έχει ζητήσει την ακύρωσή της. Το αντικείμενο της λειτουργίας παρακολούθησης προόδου λαμβάνεται από τις παραπομπές του έργου Ant.  Σημειώστε ότι μια λειτουργία παρακολούθησης διατίθεται μόνο εάν η μέθοδος AntRunner.run(IProgressMonitor) κλήθηκε με μια έγκυρη λειτουργία παρακολούθησης προόδου.Το ακόλουθο τμήμα κώδικα δείχνει τον τρόπο λήψης μιας λειτουργίας παρακολούθησης προόδου από το έργο μιας εργασίας:

import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Task;
import org.eclipse.ant.core.AntCorePlugin;
import org.eclipse.core.runtime.IProgressMonitor;

public class CoolTask extends Task {

public void execute() throws BuildException {
	IProgressMonitor monitor = 
		(IProgressMonitor) getProject().getReferences().get(AntCorePlugin.ECLIPSE_PROGRESS_MONITOR);
	if (monitor == null) {
		...
	} else {
		...
	}
}
}

Σημαντικοί κανόνες κατά την συνεισφορά εργασιών και ειδών

Τα ακόλουθα θα πρέπει να λειτουργήσουν ως λίστα ελέγχου για τους προγραμματιστές πρόσθετων λειτουργιών:

Για ποιο λόγο χρειάζεται ξεχωριστό JAR για εργασίες και είδη;

Υπάρχουν κατά βάση δυο απαιτήσεις για την εκτέλεση του Ant στο Eclipse που δεν ταιριάζουν πολύ καλά με το μοντέλο πρόσθετης λειτουργίας:

Κατά το χρόνος εκτέλεσης οι φορτωτές κλάσεων των πρόσθετων λειτουργιών δεν μπορούν να επεκτείνουν τις διαδρομές κλάσεών τους και οι πρόσθετες λειτουργίες δεν μπορούν να αλλάξουν τις εξαρτήσεις τους. Ταυτόχρονα, η ύπαρξη ξεχωριστών JAR για τις εργασίες και τα είδη αποτελεί μια καλή απομόνωση για το μηχανισμό φόρτωσης κλάσεων των πρόσθετων λειτουργιών. Η διάθεση αυτών των επιπλέον JAR που δηλώνονται από μια πρόσθετη λειτουργία επιτρέπει επίσης την προσθήκη της συνεισφέρουσας πρόσθετης λειτουργίας στη διαδρομή κλάσεων Ant.