Файл описания проекта

Описание: При создании проекта в рабочей области автоматически создается файл описания проекта. Этот файл обеспечивает самостоятельное описание проекта, тем самым позволяя правильным образом восстановить его из архива, либо после загрузки с сервера. Файл свойств всегда называется ".project" и расположен непосредственно в области содержимого проекта.  Имя файла указывается в статическом поле DESCRIPTION_FILE_NAME интерфейса org.eclipse.core.resources.IProjectDescription.

Имя, расположение и содержимое этого файла входят в состав API рабочей области. Это позволяет гарантировать, что они всегда будут доступны пользователям. Однако, при необходимости в этот файл можно добавить дополнительные элемент и атрибуты. По этой причине клиенты, работающие с файлом описания, должны поддерживать неизвестные элементы и атрибуты.

Все операции, связанные с изменением, удалением и заменой файла описания проекта, выполняются клиентами на собственный риск. Проекты, файлы описания которых отсутствуют или недопустимы, как правило, неприменимы. Проект с недопустимым файлом, обнаруженный в ходе запуска рабочей области, закрывается. Вы сможете открыть его только после того, как файл описания будет исправлен. Автоматическое исправление отсутствующих или недопустимых файлов описания не выполняется. В качестве исключения отсутствующие файлы описания проектов повторно создаются в ходе сохранения рабочей области, а также в случае вызова IProject.setDescription.

Процесс внесения изменений в файл описания проекта, во многом аналогичен изменению описания проекта с помощью IProject.setDescription. Отличие заключается в том, что добавление и удаление классификаторов проектов не приводит к вызову соответствующих методов настройки и удаления из конфигурации. Кроме того, игнорируются изменения, внесенные в имя проекта.

Если в расположении, в котором создается новый проект, уже присутствует существующий файл описания, то информация из него заимствуется новым проектом. Если имя проекта, указанное в файле описания, не совпадает с именем нового проекта, оно игнорируется. Если файл описания недопустим, проект создан не будет.


 

Описание конфигурации:

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

Примеры: Ниже приведен пример файла описания проекта. Для проекта указан один классификатор, компоновщик и несколько связанных проектов.

<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
    <name>WinterProject</name>
    <comment>Простой проект.</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: Содержимое файла описания проекта соответствует области действия интерфейса org.eclipse.core.resources.IProjectDescription. Метод IProject.setDescription() позволяет заменить файл описания проекта.