O Arquivo de Descrição do Projeto

Descrição: Quando um projeto é criado na área de trabalho, é gerado automaticamente um arquivo de descrição de projeto que descreve o projeto.  A finalidade desse arquivo é tornar o projeto auto-descritivo, para que um projeto que é compactado ou liberado para um servidor possa ser corretamente recriado em outra área de trabalho.  Esse arquivo sempre é chamado ".project" e é localizado como um membro direto da área de conteúdo do projeto.  O nome do arquivo é exposto através do campo estático DESCRIPTION FILE NAME em org.eclipse.core.resources.IProjectDescription.

O nome, a localização e o conteúdo desse arquivo fazem parte da API da área de trabalho.  Isso significa que é garantido que eles não são alterados de maneira que interromperia os usuários existentes do arquivo.  Entretanto, o direito de incluir elementos e atributos adicionais na marcação é reservado para possíveis inclusões futuras no arquivo.  Por este motivo, os clientes que leêm o conteúdo do arquivo de descrição devem tolerar elementos e atributos desconhecidos.

Os clientes que modificam, excluem ou substituem o arquivo de descrição do projeto fazem-o por sua conta e risco.  Os projetos com arquivos de descrição inválidos ou que estão faltando, geralmente, não serão utilizáveis.  Se um projeto com um arquivo de descrição inválido estiver descoberto na inicialização da área de trabalho, ele será fechado e não será possível abri-lo até que o arquivo de descrição do projeto tenha sido corrigido.  Geralmente, a área de trabalho tentará automaticamente corrigir um arquivo de descrição que está faltando ou inválido.  Uma exceção é que os arquivos de descrição que estão faltando serão gerados novamente durante o salvamento da área de trabalho e em chamadas ao IProject.setDescription.

Na maioria das vezes, as modificações no arquivo de descrição do projeto têm o mesmo resultado que a alteração da descrição do projeto através de IProject.setDescription.  Uma exceção é que incluir ou remover as naturezas do projeto irá disparar o método de configuração e desconfiguração da natureza correspondente.  Outra exceção é que as alterações no nome do projeto são ignoradas.

Se um novo projeto for criado em uma localização que contém um arquivo de descrição de projeto existente, o conteúdo desse arquivo de descrição será respeitado como a descrição do projeto.  Uma exceção é que o nome do projeto no arquivo será ignorado, se ele não corresponder ao nome do projeto que está sendo criado.  Se o arquivo de descrição no disco for inválido, a criação do projeto falhará.
 

Marcação da Configuração:

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

   <!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> Exemplos: A seguir encontra-se um arquivo de descrição do projeto de amostra.  O projeto possui uma natureza simples e construtor configurado e algumas referências de projeto.

<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
    <name>WinterProject</name>
    <comment>Este é um projeto tranqüilo.</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>
 

Informações de API: O conteúdo do arquivo de descrição do projeto é mapeado para a interface org.eclipse.core.resources.IProjectDescription. O arquivo de descrição do projeto pode ser sobreposto pelo método IProject.setDescription().

Copyright IBM Corp. e outros 2000, 2002.