Soubor s popisem projektu

Popis: Když je v pracovním prostoru vytvořen projekt, dojde k automatickému vygenerování souboru popisu projektu, jenž popisuje daný projekt.  Účelem tohoto souboru je zajistit, aby se projekt sám popsal, takže po zazipování projektu nebo jeho uvolnění na server jej pak lze správně obnovit v jiném pracovním prostoru.  Tento soubor má vždy název ".project" a je umístěn jako přímý člen obsahové oblasti daného projektu.  Název tohoto souboru je k dispozici prostřednictvím statického pole DESCRIPTION_FILE_NAME na org.eclipse.core.resources.IProjectDescription.

Název, umístění a obsah tohoto souboru jsou součástí API pracovního prostoru.  To znamená, že je zaručena absence změny způsobem, jenž by narušil stávající uživatele souboru.  Nicméně právo přidávat další prvky a atributy do markupu je vyhrazeno pro možné budoucí dodatky k tomuto souboru.  Z tohoto důvodu by klienti, jež čtou obsah souboru popisu, měli tolerovat neznámé prvky a atributy.

Klienti, jež upravují, odstraňují či nahrazují soubor s popisem projektu, tak činí na vlastní riziko.  Projekty s neplatnými či chybějícími soubory popisu nebudou obecně použitelné.  Pokud je projekt s neplatným souborem popisu zjištěn při spuštění pracovního prostoru, dojde k zavření projektu a nebude možné jej otevřít do doby, než bude soubor s popisem projektu opraven.  Pracovní prostor se obecně nebude snažit o automatickou opravu chybějícího či neplatného souboru popisu.  Jedinou výjimku tvoří případ, kdy chybějící soubory popisu projektu budou znovu vygenerovány při uložení pracovního prostoru a při voláních funkce IProject.setDescription.

Modifikace souboru s popisem projektu mají většinou stejný efekt jako změna popisu projektu prostřednictvím IProject.setDescription.  Jednou výjimkou je, že přidávání či odebírání charakterů projektu nespustí odpovídající metodu charakteru pro konfiguraci či dekonfiguraci.  Další výjimkou je, že změny názvu projektu jsou ignorovány.

Pokud je nový projekt vytvořen v místě, které obsahuje stávající soubor s popisem projektu, bude obsah tohoto souboru respektován jako popis projektu.  Jednu výjimku tvoří situace, kdy název projektu v souboru bude ignorován, pokud neodpovídá názvu vytvářeného projektu.  Pokud soubor s popisem na disku není platný, vytvoření projektu selže.


 

Konfigurační markup:

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

Příklady: Následuje ukázkový soubor s popisem projektu.  Projekt má zkonfigurován jeden charakter a jednoho tvůrce a některé odkazy.

<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
    <name>WinterProject</name>
    <comment>Tento projekt je velmi 'cool'.</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>

Informace o API: Obsah souboru popisu projektu je namapován na rozhraní org.eclipse.core.resources.IProjectDescription. Soubor s popisem projektu lze přepsat metodou IProject.setDescription().