Компоновка комплектов

В PDE включен механизм автоматизации компоновки комплектов. Большинство параметров компоновки указывается в шаблоне build.properties. Далее описан простой пример компоновки, в котором предполагается, что на диске уже присутствуют все модули и комплекты (ранее скомпонованные и которые требуется скомпоновать), на которые ссылается компонуемый комплект.

Подготовка

Прежде всего создайте каталог, в котором будет выполняться компоновка. Этот каталог будет называться каталогом компоновки, и в нем будут сохранены все компонуемые модули и комплекты, а также создаваемые объекты. Далее скопируйте модули и комплекты в каталоги "plugins" и "features". В папке feature должны содержаться компонуемые комплекты.

Второй этап подготовки компоновки - копирование файла build.properties из org.eclipse.pde.build/templates/headless-build в каталог конфигурации компоновки). В скопированном файле build.properties укажите следующие свойства:

Управление элементами компоновки: allElements.xml

Скопируйте файл allElements.xml из org.eclipse.pde.build/templates/headless-build в каталог конфигурации. В этом фале описывается компонуемый комплект.   В файле указаны две цели:  allElementsDelegator, описывающий компонуемый комплект, и цели сборки, вызываемые для компоновки отдельных элементов.   Пример allElementsDelegator для комплекта org.foo.Feature:
 	<target name="allElementsDelegator">
<ant antfile="${genericTargets}" target="${target}">
<property name="type" value="feature" />
<property name="id" value="org.foo.Feature" />
</ant>
</target>
Цели сборки позволяют указывать имена архивов для отдельных конфигураций.   Каждой конфигурации должна соответствовать одна цель.   Например, для компоновки org.foo.Feature для windows (при этом configs задан как win32, win32, x86), указываются следующие цели:
<!--Цель для сборки os=win32, ws=win32, arch=x86 -->
<target name="assemble.org.foo.Feature.win32.win32.x86">
<ant antfile="${assembleScriptName}" dir="${buildDirectory}/">
</target>
При компоновке для любой платформы (configs не задан или задан как *,*,*), цель указывается следующим образом:
<!--цель сборки, не зависящая от платформы-->
<target name="assemble.org.foo.Feature">
<ant antfile="${assembleScriptName}" dir="${buildDirectory}"/>
</target>

Запуск компоновки

Для запуска компоновки используется приложение org.elipse.ant.core.antRunner. При вызове eclipse с этим приложением для компоновки в командной строке укажите два аргумента:
antRunner запускается следующим образом:
java -jar <eclipseInstall>/startup.jar -application org.eclipse.ant.core.antRunner -buildfile <<каталог-eclipse>/plugins/org.eclipse.pde.build_<версия>/scripts/build.xml> -Dbuilder=<папка-с-конфигурацией-компоновки>
По завершении компоновки результаты будут помещены в папку I.TestBuild (это имя задается в свойстве buildLabel).

Расширенные сценарии

Дополнительная информация по сложным вариантам компоновки, например, с участием хранилища, приведена в разделе Дополнительные аспекты компоновки PDE.