Дополняющие компоновщики проектов

org.eclipse.core.resources.builders

Рабочая область поддерживает понятие дополняющего компоновщика проекта (или просто компоновщика). Задача компоновщика - обработать совокупность последних изменений в ресурсах, называемую также дельтой ресурсов. Например, компоновщик Java заново скомпилирует измененные файлы Java и создаст новые файлы классов.

Компоновщики настраиваются для каждого проекта отдельно и запускаются автоматически при изменении ресурсов в их проектах. Компоновщики должны работать достаточно быстро и исходить не из количества ресурсов в проекте, а из объема изменений в ресурсах. Обычно это подразумевает, что компоновщики могут последовательно обновлять свое "состояние компоновки".

Точка расширения компоновщиков позволяет создателям компоновщиков регистрировать реализацию компоновщика под символьным именем, которое затем используется в рабочей области для поиска и запуска компоновщика. Символьное имя - это идентификатор расширения компоновщика. При определении расширения компоновщика пользователям рекомендуется добавлять в атрибут "name" удобочитаемое значение, которое будет обозначать компоновщик и может быть представлено другим пользователям.

<!ELEMENT extension (builder)>

<!ATTLIST extension

point CDATA #REQUIRED

id    CDATA #REQUIRED

name  CDATA #IMPLIED>


<!ELEMENT builder (run?)>

<!ATTLIST builder

hasNature      (true | false)

isConfigurable (true | false) >


<!ELEMENT run (parameter*)>

<!ATTLIST run

class CDATA #REQUIRED>


<!ELEMENT parameter EMPTY>

<!ATTLIST parameter

name  CDATA #REQUIRED

value CDATA #REQUIRED>


Ниже приведен пример конфигурации компоновщика:

   

<extension id=

"coolbuilder"

name=

"Cool Builder"

point=

"org.eclipse.core.resources.builders"

>

<builder hasNature=

"false"

>

<run class=

"com.xyz.builders.Cool"

>

<parameter name=

"optimize"

value=

"true"

/>

<parameter name=

"comment"

value=

"Produced by the Cool Builder"

/>

</run>

</builder>

</extension>

Если это расширение было определено в модуле с идентификатором "com.xyz.coolplugin", то полным именем этого компоновщика будет "com.xyz.coolplugin.coolbuilder".

Значение атрибута class должно представлять производный класс класса org.eclipse.core.resources.IncrementalProjectBuilder.

Платформа не содержит предопределенных компоновщиков. В конкретных устанавливаемых версиях продукта могут содержаться необходимые компоновщики.