El archivo descriptivo del proyecto

Descripción: cuando se crea un proyecto en el área de trabajo, se genera automáticamente un archivo descriptivo del proyecto. La finalidad de este archivo es conseguir que el proyecto sea autodesriptivo; así, cuando un proyecto se empaqueta con zip o se libera en un servidor, se le podrá reproducir correctamente en otra área de trabajo. Este archivo siempre se llama ".project" y está situado como miembro directo del área de contenido del proyecto. El nombre del archivo se expone mediante el campo estático DESCRIPTION_FILE_NAME de la interfaz org.eclipse.core.resources.IProjectDescription.

El nombre, la ubicación y el contenido de este archivo forman parte de la API del área de trabajo. Esto implica que existe la garantía de que estos valores no cambiarán de tal manera que los usuarios existentes del archivo se vean afectados. Sin embargo, el derecho a añadir más elementos y atributos a los códigos XML está reservado para las posibles adiciones que se hagan en el archivo en el futuro. Por este motivo, los clientes que lean el contenido del archivo descriptivo deben estar abiertos a encontrarse con elementos y atributos desconocidos.

Los clientes que modifiquen, supriman o sustituyan el archivo descriptivo del proyecto deben saber que lo hacen bajo su propia responsabilidad. En general, los proyectos cuyos archivos descriptivos falten o no sean válidos no se podrán utilizar. Si en el momento del inicio del área de trabajo se descubre un proyecto cuyo archivo descriptivo no es válido, el proyecto queda cerrado y no será posible abrirlo mientras no se haya reparado el archivo descriptivo. Normalmente, el área de trabajo no intentará reparar automáticamente un archivo descriptivo que falte o no sea válido. Sin embargo, los archivos desriptivos del proyecto se regenerarán durante la operación de guardar el área de trabajo y en las llamadas al método IProject.setDescription.

Las modificaciones realizadas en el archivo descriptivo del proyecto tienen casi el mismo efecto que cuando se cambia la descripción del proyecto por medio del método IProject.setDescription. No obstante, cuando se añaden o eliminan naturalezas del proyecto, no se desencadenará el correspondiente método de configuración o desconfiguración de la naturaleza. Además, se pasan por alto los cambios que se realicen en el nombre del proyecto.

Si se crea un proyecto nuevo en una ubicación que contiene un archivo descriptivo existente, se respetará el contenido de dicho archivo descriptivo como descripción del proyecto. No obstante, se hará caso omiso del nombre de proyecto situado en el archivo si no coincide con el nombre del proyecto que se está creando. Si el archivo descriptivo que hay en disco no es válido, la creación del proyecto fallará.
 

Códigos XML de configuración:

   <!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> Ejemplos: a continuación figura un archivo descriptivo de un proyecto de ejemplo. El proyecto tiene configurados un solo constructor y una sola naturaleza, además de algunas referencias a proyectos.

<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
    <name>WinterProject</name>
    <comment>Este es un proyecto atractivo.</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>
 

Información sobre las API: el contenido del archivo descriptivo del proyecto se correlaciona con la interfaz org.eclipse.core.resources.IProjectDescription. El método IProject.setDescription() puede sobrescribir el archivo descriptivo del proyecto.

Copyright IBM Corp. y otros 2000, 2002.