Projektbeskrivningsfilen

Beskrivning: När ett projekt skapas på arbetsytan genereras automatiskt en projektbeskrivningsfil som beskriver projektet.  Syftet med den här filen är att göra projekt självbeskrivande så att ett projekt som zippas ihop eller släpps till en server kan återskapas på rätt sätt i en annan arbetsyta.  Filen har alltid namnet ".project" och är en direktmedlem i innehållsområdet för projektet.  Namnet på filen är tillgängligt via det statiska fältet DESCRIPTION_FILE_NAME för org.eclipse.core.resources.IProjectDescription.

Namn, plats och innehåll för filen är en del av arbetsyte-API:t.  Det innebär att den inte kan ändras på ett sätt så att det påverkar de som använder filen.  Behörighet att lägga till fler element och attribut i märkordsuppsättningen är dock förbehållen för möjliga framtida tillägg till filen.  Av den anledningen bör klienter som läser innehållet i beskrivningsfilen kunna tolerera okända element och attribut.

Klienter som ändrar, tar bort eller ersätter projektbeskrivningsfilen gör så på egen risk.  Projekt med en ogiltig beskrivningsfil och projekt som inte har någon beskrivningsfil kan inte användas allmänt.  Om ett projekt med en ogiltig beskrivningsfil upptäcks när arbetsytan startas stängs projektet och det går inte att öppna det förrän projektbeskrivningsfilen har åtgärdats.  Arbetsytan försöker vanligen inte automatiskt åtgärda en saknad eller ogiltig beskrivningsfil.  Ett undantag är att saknade projektbeskrivningsfiler genereras på nytt när arbetsytan sparas och vid anrop till IProject.setDescription.

Ändringar av projektbeskrivningsfilen har i stort sett samma effekt som att ändra projektbeskrivningen via IProject.setDescription.  Ett undantag är att tillägg och borttagning av projektnaturer inte aktiverar motsvarande naturers konfigurations- eller avkonfigurationsmetoder.  Ett annat undantag är att ändringar av projektnamnet ignoreras.

Om ett nytt projekt skapas på en plats som innehåller en befintlig projektbeskrivningsfil används den beskrivningsfilen som projektbeskrivning.  Ett undantag är att projektnamnet i filen ignoreras om det inte överensstämmer med namnet på det projekt som skapas.  Om beskrivningsfilen på disken är ogiltig misslyckas försöket att skapa projektet.


 

Konfigurationsmärkordsuppsättning:

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

Exempel: Det följande är ett exempel på en projektbeskrivningsfil.  Projektet är konfigurerat med en natur och en byggfunktion och så finns vissa projektreferenser.

<?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-information: Innehållet i projektbeskrivningsfilen avbildas till gränssnittet org.eclipse.core.resources.IProjectDescription. Projektbeskrivningsfilen kan skrivas över med metoden IProject.setDescription().