Projektbeschreibungsdatei

Beschreibung: Beim Erstellen eines Projekts im Arbeitsbereich wird automatisch eine Projektbeschreibungsdatei erstellt, die das Projekt beschreibt. Es ist der Zweck dieser Datei, das Projekt selbstbeschreibend zu machen, so dass ein Projekt, das komprimiert bzw. an einen Server freigegeben wird, korrekt in einem anderen Arbeitsbereich wieder hergestellt werden kann. Diese Datei trägt immer den Namen ".projekt" und befindet sich als direktes Mitglied im Inhaltsbereich des Projekts. Der Name der Datei wird durch das Statikfeld DESCRIPTION_FILE_NAME auf org.eclipse.core.resources.IProjectDescription freigelegt.

Der Name, die Position und der Inhalt dieser Datei sind Teil der Arbeitsbereich-API. Das heißt, dass mit Sicherheit keine Änderungen auftreten, die zur Unterbrechung von vorhandenen Benutzern dieser Datei führen würden. Mögliche Erweiterungen dieser Datei in der Zukunft behalten sich allerdings das Recht vor, zusätzliche Elemente und Attribute zur Formatierungssteuerung hinzuzufügen. Clients, die die Beschreibungsdatei lesen, sollten deshalb Toleranz für unbekannte Elemente und Attribute zeigen.

Clients, die die Projektbeschreibungsdatei ändern, löschen oder ersetzen, gehen auf eigenes Risiko vor. Projekte mit ungültigen oder fehlenden Beschreibungsdateien sind in der Regel nicht verwendbar. Wenn beim Starten des Arbeitsbereichs ein Projekt mit einer ungültigen Beschreibungsdatei entdeckt wird, wird das Projekt geschlossen und kann erst wieder geöffnet werden, wenn die Beschreibungsdatei repariert wurde. In der Regel versucht der Arbeitsbereich nicht automatisch, eine fehlende oder ungültige Beschreibungsdatei zu reparieren. Eine Ausnahme hierzu besteht darin, dass fehlende Projektbeschreibungsdateien während Arbeitsbereichspeicheroperationen und beim Aufruf von IProject.setDescription regeneriert werden.

Änderungen an der Projektbeschreibungsdatei haben in der Regel dieselbe Auswirkung wie das Ändern der Projektbeschreibung über IProject.setDescription. Eine Ausnahme besteht darin, dass das Hinzufügen bzw. Entfernen von Projektgattungen nicht die Konfigurations- bzw. Dekonfigurationsmethode der entsprechenden Gattung auslöst. Eine weitere Ausnahme ist das Ignorieren von Änderungen am Projektnamen.

Wenn ein neues Projekt in einer Position erstellt wird, die eine vorhandene Projektbeschreibungsdatei enthält, wird der Inhalt dieser Beschreibungsdatei als die Projektbeschreibung anerkannt. Eine Ausnahme besteht darin, dass der Projektname in der Datei ignoriert wird, wenn er nicht mit dem Namen des erstellten Projekts übereinstimmt. Wenn die Beschreibungsdatei auf der Diskette ungültig ist, schlägt die Projekterstellung fehl.


 

Konfigurationsbefehle:

   <!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>

Beispiele: Im Folgenden ist ein Beispiel für eine Projektbeschreibungsdatei aufgeführt. Für das Projekt sind eine einzelne Gattung und ein Aufbauprogramm sowie einige Projektverweise konfiguriert.

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

Copyright IBM Corporation und Andere 2000, 2003.