Projektbeschreibungsdatei

Beschreibung: Wenn im Arbeitsbereich ein Projekt erstellt wird, wird automatisch eine Projektbeschreibungsdatei generiert, die das Projekt beschreibt.  Der Zweck dieser Datei besteht darin, das Projekt sich selbst beschreibend zu machen, sodass ein Projekt, das komprimiert oder auf einem Server freigegeben wird, korrekt in einem anderen Arbeitsbereich wieder erstellt werden kann.  Diese Datei wird immer ".project" genannt und befindet sich als ein direktes Member im Inhaltsbereich des Projekts.  Der Name der Datei wird über das statische Feld BESCHREIBUNGS_DATEI_NAME auf org.eclipse.core.resources.IProjectDescription freigestellt.

Der Name, die Position und der Inhalt dieser Datei sind ein Teil der Arbeitsbereichs-API.  Dies bedeutet, dass sie garantiert nicht in einer Weise geändert werden, in der vorhandende Benutzer der Datei unterbrochen werden.  Es besteht jedoch das Recht, den Formatierungssteuerzeichen zusätzliche Elemente und Attribute für mögliche zukünftige Ergänzungen der Datei hinzuzufügen.  Aus diesem Grund sollten Clients, die die Inhalte der Beschreibungsdatei lesen, unbekannte Elemente und Attribute tolerieren.

Clients, die die Projektbeschreibungsdatei ändern, löschen oder ersetzen, führen dies auf eigenes Risiko durch.  Projekte mit ungültigen oder fehlenden Beschreibungsdateien können in der Regel nicht verwendet werden. Falls ein Projekt mit einer ungültigen Beschreibungsdatei beim Starten des Arbeitsbereichs festgestellt wird, wird das Projekt geschlossen und es kann nicht geöffnet werden, bis die Projektbeschreibungsdatei repariert wird.  Der Arbeitsbereich wird im Allgemeinen nicht versuchen, die fehlende oder ungültige Beschreibungsdatei zu reparieren.  Eine Ausnahme bildet, dass fehlende Projektbeschreibungsdateien während des Speicherns des Arbeitsbereichs und beim Aufruf von IProject.setDescription erneut generiert werden..

Veränderungen an der Projektbeschreibungsdatei haben meistens die gleichen Auswirkungen wie Änderungen der Projektbeschreibung über IProject.setDescription.  Eine Ausnahme bildet, dass durch das Hinzufügen oder Entfernen von Projektgattungen nicht die entsprechende Konfigurations- oder Dekonfigurationsmethode der Gattung ausgelöst wird.  Eine weitere Ausnahme stellt dar, dass Änderungen am Projektnamen ignoriert werden.

Falls ein neues Projekt an einer Position erstellt wird, die eine vorhandende Projektbeschreibungsdatei enthält, werden die Inhalte dieser Beschreibungsdatei als Projektbeschreibung berücksichtigt.  Eine Ausnahme stellt dar, dass der Projektname in der Datei ignoriert wird, falls er nicht mit dem Namen des erstellten Projekts übereinstimmt.  Falls die Beschreibungsdatei auf der Festplatte ungültig ist, schlägt die Projekterstellung fehl.


 

Konfigurationsbefehle:

   <!ELEMENT projectDescription (Name, Kommentare, Projekte, buildSpec, Gattungen, linkedResources)>

   <!ELEMENT name EMPTY>

   <!ELEMENT comment EMPTY>

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

   <!ELEMENT buildSpec (buildCommand)*>

   <!ELEMENT buildCommand (Name, Argumente)>

   <!ELEMENT name EMPTY>

   <!ELEMENT arguments (Wörterbuch?)>

   <!ELEMENT dictionary (Schlüssel, Wert)*>

   <!ELEMENT key EMPTY>

   <!ELEMENT value EMPTY>

   <!ELEMENT natures (Gattung)*>

   <!ELEMENT nature EMPTY>

   <!ELEMENT linkedResources (Link)*>

   <!ELEMENT link (Name, Typ, Position)>

   <!ELEMENT name EMPTY>

   <!ELEMENT type EMPTY>

   <!ELEMENT location EMPTY>

Beispiele: Im Folgenden ist eine Beispielsprojektbeschreibungsdatei dargestellt.  Für das Projekt ist eine Gattung und ein Erstellungsprogramm konfiguriert und es enthält einige Projektverweise.

<?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-Informationen: Die Inhalte der Projektbeschreibungsdatei sind der Schnittstelle org.eclipse.core.resources.IProjectDescription zugeordnet. Die Projektbeschreibungsdatei kann durch die Methode IProject.setDescription() überschrieben werden.