Ορισμός της διαδρομής δόμησης Java

Η ενότητα αυτή περιγράφει τον τρόπο ορισμού της διαδρομής δόμησης Java.   Η διαδρομή δόμησης είναι η διαδρομή κλάσεων που χρησιμοποιείται για τη δόμηση ενός έργου Java (IJavaProject).

Μια διαδρομή κλάσεων είναι απλά ένας πίνακας με καταχωρήσεις διαδρομών κλάσεων (IClassPathEntry) που περιγράφει τα είδη που είναι διαθέσιμα.  Τα είδη μπορούν να εμφανίζονται σε πρωτογενή ή δυαδική μορφή και η σειρά των καταχωρήσεων στη διαδρομή ορίζει τη σειρά αναζήτησης για την ανάλυση των ειδών κατά τη διάρκεια μιας διεργασίας δόμησης.

Η διαδρομή δόμησης Java αντικατοπτρίζεται στη δομή ενός στοιχείου έργου Java.   Μπορείτε να υποβάλετε ερώτημα σε ένα έργο για τις αφετηρίες τμημάτων πακέτων του (IPackageFragmentRoot).  Κάθε καταχώρηση διαδρομής κλάσης αντιστοιχίζεται σε μία ή περισσότερες αφετηρίες τμημάτων πακέτων, κάθε μία από τις οποίες περιέχει ένα σύνολο τμημάτων πακέτων.

Η συζήτηση για τη διαδρομή δόμησης δεν περιλαμβάνει τη διαδρομή του περιβάλλοντος εκτέλεσης Java, η οποία μπορεί να οριστεί ξεχωριστά από τη διαδρομή δόμησης.   (Ανατρέξτε στην ενότητα Εκτέλεση κώδικα Java για περισσότερες πληροφορίες σχετικά με τη διαδρομή κλάσεων περιβάλλοντος εκτέλεσης.)

Αλλαγή της διαδρομής δόμησης

Μπορείτε να αλλάξετε μέσω προγραμματισμού μια διαδρομή δόμησης έργου, χρησιμοποιώντας τη setRawClasspath στο αντίστοιχο στοιχείο έργου Java.   Ο παρακάτω κώδικας ορίζει τη διαδρομή κλάσεων για έναν πόρο έργου:

	IProject project = ... // get some project resource
	IJavaProject javaProject = JavaCore.create(project);
	IClasspathEntry[] newClasspath = ...;
	javaProject.setRawClasspath(newClasspath, someProgressMonitor);
	

(Σημείωση:  Η χρήση του όρου "αδιαμόρφωτη" διαδρομή κλάσεων έχει ως στόχο να δώσει έμφαση στο γεγονός ότι οι μεταβλητές που χρησιμοποιούνται για την περιγραφή των θέσεων καταχωρήσεων δεν έχουν αναλυθεί.)

Η διαδρομή κλάσεων Java είναι μόνιμα αποθηκευμένη σε ένα αρχείο με το όνομα ".classpath" στη δομή αρχείων του έργου.  Σκοπός του αρχείου αυτού είναι να παρέχει έναν τρόπο κοινής χρήσης των ρυθμίσεων διαδρομής δόμησης Java με άλλες θέσεις του χώρου αποθήκευσης πρωτογενούς κώδικα. Συγκεκριμένα, το αρχείο αυτό θα πρέπει να τροποποιείται με μη αυτόματο τρόπο, καθώς υπάρχει κίνδυνος να καταστραφεί.

Καταχωρήσεις διαδρομής κλάσεων

Οι καταχωρήσεις διαδρομής κλάσεων μπορούν να οριστούν με τη χρήση μεθόδων κατασκευής που ορίζονται στη JavaCore.  Στις καταχωρήσεις διαδρομής κλάσεων μπορούν να αναφέρονται τα εξής:

Μοτίβα εξαίρεσης

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

Ανατρέξτε στην περιγραφή της μεθόδου getExclusionPatterns για περισσότερες πληροφορίες σχετικά με τα μοτίβα εξαίρεσης.

Το API isOnClasspath του έργου Java ελέγχει τόσο το μοτίβο συμπερίληψης όσο και το μοτίβο εξαίρεσης πριν προσδιορίσει αν ένας συγκεκριμένος πόρος βρίσκεται στη διαδρομή κλάσεων.

Παρατηρήσεις:

Μοτίβα συμπερίληψης

Μια καταχώρηση προέλευσης διαδρομής κλάσεων μπορεί επίσης να αντιστοιχιστεί σε ένα μοτίβο συμπερίληψης, που ορίζει ρητά τους πόρους που θα είναι ορατοί στη διαδρομή κλάσεων.  Όταν δεν προσδιορίζεται κανένα μοτίβο συμπερίληψης, η καταχώρηση προέλευσης συμπεριλαμβάνει όλα τα σχετικά αρχεία της διακλάδωσης πόρου που βρίσκονται σε αυτή τη διαδρομή καταχώρησης προέλευσης. Ο προσδιορισμός ενός ή περισσότερων μοτίβων συμπερίληψης σημαίνει ότι μόνο τα προσδιορισμένα τμήματα της διακλάδωσης προέλευσης θα συμπεριληφθούν. Κάθε διαδρομή που προσδιορίζεται πρέπει να είναι μια σχετική διαδρομή και θα ερμηνεύεται σε σχέση με την αντίστοιχη διαδρομή της καταχώρησης προέλευσης. Τα μοτίβα αρχείων χρησιμοποιούν διάκριση πεζών-κεφαλαίων. Ένα αρχείο που ταιριάζει με τα κριτήρια ενός ή περισσότερων μοτίβων συμπεριλαμβάνεται στην αντίστοιχη αφετηρία τμήματος πακέτου, εκτός κι αν εξαιρείται από ένα ή περισσότερα από τα μοτίβα εξαίρεσης της καταχώρησης αυτής.

Ανατρέξτε στην περιγραφή της μεθόδου getExclusionPatterns για αναλυτικές πληροφορίες σχετικά με τη σύνταξη και τη σημασιολογία των μοτίβων διαδρομών. Η απουσία τυχόν μοτίβων εξαίρεσης είναι σημασιολογικά ισοδύναμη με το μοτίβο ρητής συμπερίληψης **.

Το API isOnClasspath του έργου Java ελέγχει τόσο το μοτίβο συμπερίληψης όσο και το μοτίβο εξαίρεσης πριν προσδιορίσει αν ένας συγκεκριμένος πόρος βρίσκεται στη διαδρομή κλάσεων.

Παραδείγματα:

Ανάλυση διαδρομής κλάσεων

Καθώς οι μεταβλητές διαδρομών κλάσεων και οι θέσεις υποδοχής σας επιτρέπουν να ορίσετε δυναμικά συνδεδεμένες καταχωρήσεις διαδρομών κλάσεων, το API διαδρομής κλάσεων διακρίνει μια αδιαμόρφωτη από μια αναλυμένη διαδρομή κλάσεων.   Η αδιαμόρφωτη διαδρομή κλάσεων είναι αυτή που έχει οριστεί αρχικά στο έργο Java, με τη χρήση της setRawClasspath και μπορεί να υποβληθεί περαιτέρω ερώτημα σε αυτή με ερώτηση του έργου για την getRawClasspath.  Στην αναλυμένη διαδρομή κλάσεων μπορεί να υποβληθεί ερώτημα με τη χρήση της getResolvedClasspath. Η διαδικασία ενεργοποιεί την απόδοση αρχικών τιμών σε μεταβλητές και θέσεις υποδοχής που είναι απαραίτητες για την ανάλυση της διαδρομής κλάσεων.   Πολλές λειτουργίες του μοντέλου Java έχουν ως έμμεσο αποτέλεσμα την ανάλυση της διαδρομής δόμησης Java.  Για παράδειγμα, ο υπολογισμός των αφετηριών τμημάτων πακέτων ενός έργου απαιτεί την ανάλυση της διαδρομής δόμησης.