Το αρχείο περιγραφής έργου

Περιγραφή: Όταν δημιουργείται ένα έργο στο χώρο εργασίας, δημιουργείται αυτόματα ένα αρχείο περιγραφής έργου το οποίο περιγράφει το έργο.  Ο σκοπός αυτού του αρχείου είναι να καταστήσει το έργο αυτοπεριγραφόμενο, ώστε ένα έργο που συμπιέζεται ή εκδίδεται σε έναν εξυπηρετητή να μπορεί να επαναδημιουργηθεί σωστά σε έναν άλλο χώρο εργασίας.  Αυτό το αρχείο ονομάζεται πάντα ".project" και βρίσκεται ως ένα άμεσο μέλος της περιοχής περιεχομένου του έργου.  Το όνομα του αρχείου εκτίθεται μέσω του στατικού πεδίου DESCRIPTION_FILE_NAME στο org.eclipse.core.resources.IProjectDescription.

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

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

Οι τροποποιήσεις στο αρχείο περιγραφής έργου έχουν ως επί το πλείστον το ίδιο αποτέλεσμα όπως με την αλλαγή της περιγραφής του έργου μέσω της IProject.setDescription.  Εξαίρεση αποτελεί το γεγονός ότι η προσθήκη ή η αφαίρεση φύσεων του έργου δεν θα ενεργοποιήσει αυτόματα την αντίστοιχη μέθοδο ρύθμισης ή αναίρεσης της ρύθμισης της φύσης.  Μια άλλη εξαίρεση αποτελεί το γεγονός οι αλλαγές του ονόματος του έργου αγνοούνται.

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


 

Μορφοποίηση ρυθμίσεων:

   <!ELEMENT projectDescription (name, comment, projects, buildSpec, natures, linkedResources)>

   <!ELEMENT name EMPTY>

   <!ELEMENT comment EMPTY>

   <!ELEMENT projects (project)*>
   <!ELEMENT project EMPTY>

   <!ELEMENT buildSpec (buildCommand)*>

   <!ELEMENT buildCommand (name, arguments)>

   <!ELEMENT name EMPTY>

   <!ELEMENT arguments (dictionary?)>

   <!ELEMENT dictionary (key, value)*>

   <!ELEMENT key EMPTY>

   <!ELEMENT value EMPTY>

   <!ELEMENT natures (nature)*>

   <!ELEMENT nature EMPTY>

   <!ELEMENT linkedResources (link)*>

   <!ELEMENT link (name, type, location)>

   <!ELEMENT name EMPTY>

   <!ELEMENT type EMPTY>

   <!ELEMENT location EMPTY>

Παραδείγματα: Το ακόλουθο αποτελεί ένα δείγμα αρχείου περιγραφής έργου.  Το έργο έχει ρυθμίσει μια μοναδική φύση και ένα εργαλείο δόμησης καθώς και μερικές παραπομπές σε έργα.

<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
    <name>WinterProject</name>
    <comment>This is a cool project.</comment>
    <projects>
        <project>org.seasons.sdt</project>
        <project>CoolStuff</project>
    </projects>
    <buildSpec>
        <buildCommand>
            <name>org.seasons.sdt.seasonBuilder</name>
            <arguments>
                <dictionary>
                    <key>climate</key>
                    <value>cold</value>
                </dictionary>
            </arguments>
        </buildCommand>
    </buildSpec>
    <natures>
        <nature>org.seasons.sdt.seasonNature</nature>
    </natures>
</projectDescription>

Πληροφορίες API: Τα περιεχόμενα του αρχείου περιγραφής έργου αντιστοιχούν στη διεπαφή org.eclipse.core.resources.IProjectDescription. Το αρχείο περιγραφής έργου μπορεί να αντικατασταθεί από τη μέθοδο IProject.setDescription().