Компоновка комплектов
В PDE включен механизм автоматизации компоновки комплектов.
Большинство параметров компоновки указывается в шаблоне build.properties.
Далее описан простой пример компоновки, в котором предполагается, что на диске уже присутствуют все модули и комплекты (ранее скомпонованные и которые требуется скомпоновать), на которые ссылается компонуемый комплект.
Подготовка
Прежде всего создайте каталог, в котором будет выполняться компоновка.
Этот каталог будет называться каталогом компоновки, и в нем будут сохранены все компонуемые модули и комплекты, а также создаваемые объекты.
Далее скопируйте модули и комплекты в каталоги "plugins" и "features".
В папке feature должны содержаться компонуемые комплекты.
Второй этап подготовки компоновки - копирование файла build.properties из
org.eclipse.pde.build/templates/headless-build в каталог конфигурации компоновки). В скопированном файле build.properties укажите следующие свойства:
- baseLocation: расположение
eclipse, в котором содержатся стандартные комплекты и модули в каталогах features/ и plugins/.
- baseos: операционная система
eclipse в каталоге baseLocation.
- basews: оконная система
eclipse в каталоге baseLocation.
- basearch: архитектура
eclipse в каталоге baseLocation.
- buildDirectory:
каталог компоновки. Укажите полный путь к ранее созданному каталогу компоновки.
- configs: список конфигураций, для которых будет скомпонован комплект.
Можно убрать комментарии с указанных конфигураций (будьте внимательны при переносе строк).
Если комплект не зависит от платформы, это свойство можно не указывать или задать его равным *,*,*.
- archivePrefix:
имя каталога, в который комплект будет распакован на диск.
Управление элементами компоновки: 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 с этим приложением для компоновки в командной строке укажите два аргумента:
-buildfile=</путь/к/build.xml>
: Путь к build.xml. Он расположен в каталоге org.eclipse.pde.build/scripts. Этот файл управляет всем процессом компоновки.
-Dbuilder=</путь/к/папка-конфигурации>
:
Путь к папке конфигурации компоновки.
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.