Создание пакетов компонентов Eclipse

Компоненты Eclipse поставляются в архивах. Архив содержит набор комплектов и модулей. Обычно в архив включаются все функции данного компонента. Иногда пользователям требуется большее число компонентов или только их часть. В этом случае им пришлось бы вручную получать все нужные архивы и извлекать из них требуемые комплекты и модули. Это трудоемкая и небезопасная операция.

Поэтому в PDE предусмотрен механизм пакетирования для автоматизации этого процесса. Пакетировщик принимает архивы с комплектами и список требуемых функций. После этого он получает файлы zip, извлекает комплекты и модули и создает с ними новый архив zip.

Начало работы

Ниже описаны основные этапы работы с пакетировщиком.   Рекомендуется создавать пакеты *nix в системе *nix, чтобы сохранить права доступа.

  1. Создайте каталог для конфигураций пакетов и скопируйте в него файлы шаблонов (packager.properties, packaging.properties и customTargets.xml) из org.eclipse.pde.build/templates/packager.
  2. В файлах packager.properties укажите следующие свойства:
  3. Получите файлы карт связей для пакетировщика.   Загрузкой файлов карт связей управляют следующие свойства:
    Сценарий пакетировщика объединит все файлы *.map, найденные в каталоге ${downloadDirectory}. Для того чтобы загрузить несколько файлов карт связей или получить их из CVS, измените в файле customTargets.xml цель getMapFiles.
  4. Запустите пакетировщик командой
  5. java -jar <каталог-Eclipse>/startup.jar -application org.eclipse.ant.core.antRunner 
    -buildfile <<каталог-Eclipse>/plugins/org.eclipse.pde.build_<version>/scripts/package.xml>
    -DpackagingInfo=<каталог-конфигурации-пакета>

Формат файла карты связей

Файлы карт связей пакетировщика описывают различные архивы, их содержимое и адрес для их загрузки.   Они похожи на файлы карт связей, применяемые при компоновке для получения комплектов из хранилищ.   далее приведен формат записи в файле карты связей:
archiveName = url | [configList] | [directory] | contentDescription | componentName

Обратите внимание, что хотя configList и directory - необязательные параметры, требуется указать нужной число разделителей "|".
Примеры:
eclipse-SDK-3.1-win32.zip=http://download.eclipse.org/downloads/drops/R-3.1-200506271435/ | win32,win32,x86 | | sdk | eclipse
eclipse-PDE-3.1.zip=http://download.eclipse.org/downloads/drops/R-3.1-200506271435/ | | | runtime | pde

Свойства конфигурации пакетировщика

В файле packager.properties можно настроить следующие свойства:
baseDirectory
Каталог, в котором выполняются все операции с пакетом
workingDirectory
Каталог, в котором будут создаваться сценарии.   Значение в шаблоне - ${baseDirectory}/workingPlace
downloadDirectory
Папка, в которую будут загружаться архивы.   Значение в шаблоне - ${baseDirectory}/toPackage
tempDirectory
Папка, в которую будут распаковываться архивы.  Значение в шаблоне - ${baseDirectory}/temp
featurePaths
Имя корневого каталога архивов.  Значение в шаблоне - eclipse.
featureList
Список ИД комплектов через запятую.
componentFilter
Список компонентов через запятую, из которого можно получить комплекты в featureList.   Этот фильтр ограничивает число доступных архивов и позволяет оптимизировать загрузку файлов пакетировщиком.
contentFilter
Список типов содержимого через запятую.   Этот фильтр ограничивает набор доступных архивов и позволяет оптимизировать загрузку файлов пакетировщиком.
config
Список конфигураций, разделенных символом "&" (операционная система, оконная система, архитектура).   (пример: win32, win32, x86 & linux, gtk, x86)
archivesFormat
Форматы архивов.   Список конфигураций и форматов через "&".   (Пример: win32, win32, x86 - antZip & linux, gtk, ppc - tar).  Если для конфигурации формат архива не задан, используется формат по умолчанию antZip.
zipargs
Дополнительные аргументы для zip
unzipargs
Дополнительные аргументы для unzip
archivePrefix
Приставка для архивов
collectingFolder
Имя корневого каталога архивов.
buildId
ИД компоновки в имени архива по умолчанию.
buildType
Тип компоновки в имени вывода компоновки.   Может принимать значения I, N, M, S, ...
buildLabel
Метка компоновки.   Значение в шаблоне - ${buildType}.${buildId}
archiveNamePrefix
Входит в имя архива.   Значение по умолчанию - ${buildId}
packagingProperties
Относительный путь к файлу, содержащему свойства пакета.   По умолчанию - packaging.properties.
deltaPack
Указывает необходимость создания пакета с поправкой.   При этом будут исключены все независящие от платформы элементы и все конфигурации будут сгруппированы в один архив.

Корневые файлы пакета

Свойство packagingProperties из файла packager.properties указывает на файл свойств, в котором перечислены включаемые в пакет корневые файлы.   По умолчанию - packaging.properties.

В этот файл свойств должны быть включены свойства, в которых заданы корневые файлы.   За дополнительной информацией по корневым свойствам обратитесь к разделу Свойства, заданные для комплекта.