Конфигурация компоновки
Механизм компоновки управляется конфигурацией компоновки. Конфигурация компоновки модуля, фрагмента или комплекта содержится в соответствующем файле
build.properties.
При создании проекта модуля мастеры создания проекта PDE генерируют файл build.properties.
Этот файл хранит информацию о том, как скомпилировать исходные папки в JAR. Косвенным образом эту информацию можно обновить на странице Выполнение редактора манифеста.
Ее можно также изменить прямо в соответствующем редакторе.
В PDE входит простой редактор для build.properties с панелями Формы и Исходный текст.
Формат файла - это формат файла свойств Java. Требуется указать ключи и их значения.
Несколько значений отделяются друг от друга запятыми.
Общие свойства
- bin.includes - список файлов, включаемых в двоичный файл модуля;
- bin.excludes - список файлов, исключаемых из бинарной компоновки;
- qualifier - когда номер версии элемента оканчивается на .qualifier то это указывает, какое значение будет подставлено вместо ".qualifier". Допустимые значения свойства: context, <value> или none.
Context сгенерирует дату по системной дате, или из тегов CVS при автоматической компоновке. Value - это настоящее значение. None - удалит ".qualifier". Значение по умолчание - context.
- custom=true - указывает, что сценарий компоновки создан вручную, а не автоматически.Поэтому не проверяется никакое другое значение.
Особые свойства модуля
- source.<library> - исходные папки, которые будут скомпилированы (например, source.xyz.jar=src/, src-ant/). Если библиотека указана в plugin.xml или manifest.mf, эти значения должны совпадать;
- output.<library> - выходная папка для результатов компиляции;
- source.<library> - список файлов, которые не должны копироваться компилятором в библиотеку;
- extra.<library> - дополнительные пути к классам для автоматической компоновки. Пути к классам могут быть заданы или как относительные пути, или url платформы, ссылающиеся на модули фрагменты среды
разработки (например, ../someplugin/xyz.jar, platform:/plugins/org.apache.ant/ant.jar).
Рекомендуется использовать абсолютные адреса platform вместо относительных;
- manifest.<library> - файл, который будет использован как манифест для библиотеки. Он должен быть расположен в одной из папок исходного кода, использующихся как входные для jar.
- src.includes - список файлов, включаемых в компоновку исходных текстов;
- src.excludes - список файлов, исключаемых из компоновки исходных текстов;
- jars.extra.classpath - (устарел) действует также как extra.<library>, но записи применяются ко всем библиотекам;
- jars.compile.order - задает порядок компиляции jar (если есть несколько библиотек).
Значения, заданные для этих ключей и оканчивающиеся на "includes" или "excludes", называются "шаблонами" Ant ("patterns"). Стандартные выражения имеют тот же смысл, что и всегда. Например, "*.jar"
обозначает все файлы jar в каталоге верхнего уровня. Шаблоны по умолчанию не рекурсивны. Например, шаблон для всех файлов Java выглядит как "**/*.java".
Шаблон "**" обозначает любое число уровней каталогов.
Подобным образом все вложенные деревья описываются с помощью "xyz/".
Особые свойства комплекта
- root - список файлов и папок, которые необходимо включить в корневой объект продукта. Поддерживаются следующие значения:
- <folderName> - относительный путь к копируемой папке;
- file:<fileName> - относительный путь к копируемому файлу;
- absolute:<folderName> - абсолютный путь к копируемой папке;
- absolute:file:<fileName> - абсолютный путь к копируемому файлу;
- root.<config> - список файлов и папок, которые необходимо включить в корневой объект продукта, когда он компонуется для заданной конфигурации. config состоит из трех сегментов конфигурации, разделенных точкой;
- root.permissions.<permissionValue> - список файлов и папок, для которых следует задать указанное значение прав доступа. Папки должны задаваться с символом '/' в конце;
- root.permissions.<config>.<permissionValue> - список файлов и папок, для которых следует задать указанное значение прав доступа для заданной конфигурации. Папки должны задаваться с символом '/' в конце;
- root.link - попарный список файлов и папок, для которых нужно создать символические ссылки (через запятую). Первая запись означает исходный файл (цель на языке unix), вторая - имя ссылки;
- root.link.<config> - попарный список файлов и папок, для которых нужно создать символические ссылки для заданной конфигурации (через запятую). Первая запись означает исходный файл (цель на языке unix), вторая - имя ссылки;
- generate.feature@<featureId> - указывает, что исходный комплект featureId будет таковым для комплекта, заданного как значение этого свойства.
Значения, указанные после первой запятой, указывают на элементы, которые потребуется получить из хранилища;
- generate.plugin@<pluginId> - указывает, что исходный модуль pluginId будет таковым для модуля, заданного как значение этого свойства.
Следующий пример взят из файла build.properties комплекта org.eclipse.platform.
bin.includes=epl-v10.html,eclipse_update_120.jpg,feature.xml,feature.properties,license.html
root=rootfiles,file:../../plugins/org.eclipse.platform/startup.jar,configuration/
root.permissions.755=eclipse
root.linux.motif.x86=../../plugins/platform-launcher/bin/linux/motif,linux.motif
root.linux.motif.x86.link=libXm.so.2.1,libXm.so.2,libXm.so.2.1,libXm.so
root.linux.motif.x86.permissions.755=*.so*