Целевая платформа для PDE Безголовая сборка не работает
В настоящее время я пытаюсь заставить мою безголовую pde-build работать, но я застрял в точке, где я не знаю, как продолжить. Проблема в том, как определить соответствующую целевую платформу для компиляции плагинов. У меня есть build.bat со следующим вызовом (все в одной строке!):
java -jar D:\target\eclipse\plugins\org.eclipse.equinox.launcher_1.0.201.R35x_v20090715.jar
-application org.eclipse.ant.core.antRunner
-f D:\target\eclipse\plugins\org.eclipse.pde.build_3.5.2.R35x_20100114\scripts\productBuild\productBuild.xml
-Dbuilder=c:\pde-build\scripts %*
Я пытался создать целевую платформу Eclipse из разных частей: SDK Eclipse, SDK RCP, Delta Pack, PDE-SDK во всех комбинациях, но ни одна из них не работала хорошо.
Я получил следующую ошибку:
BUILD FAILED
D:\target\eclipse\plugins\org.eclipse.pde.build_3.5.2.R35x_20100114\scripts\productBuild\productBuild.xml:18: Cannot fin
d ${eclipse.pdebuild.scripts}/build.xml imported from D:\target\eclipse\plugins\org.eclipse.pde.build_3.5.2.R35x_2010011
4\scripts\productBuild\productBuild.xml
где переменная ${eclipse.pdebuild.scripts} не была разрешена. Я также попытался передать этот параметр через командную строку, но затем я получил еще одну ошибку в связи с отсутствием задачи svn, что совершенно сбивает с толку, так как это работает с моей локальной установкой Eclipse, на которую ссылаются.
Когда я заменяю путь от d:/target/eclipse к своей локальной установке eclipse, сборка pde работает как положено! Это приводит меня к тому, что конфигурация целевого затмения не верна, но в настоящий момент я не знаю, как это настроить!
Моя цель - автоматизировать сборку pde сначала на моем локальном сайте без ссылки на локальное затмение, а затем интегрировать этот процесс сборки в наш запущенный экземпляр cruisecontrol.
Поскольку я уже видел другой вопрос об определении целевого затмения, я был бы рад, если бы кто-нибудь мог дать подсказки или факты, касающиеся проблемы.
С уважением, Андреас
3 ответа
При выполнении сборки без головы цель может быть отделена от затмения, которое фактически запускает сборку. Проблема, с которой вы столкнулись здесь, состоит в том, что затмение, которое вы использовали для запуска сборки, не было должным образом установлено PDE/Build.
Вот почему ${eclipse.pdebuild.scripts}
не был установлен, поскольку PDE/Build не был установлен в этот экземпляр eclipse, пакет org.eclipse.pde.build не был разрешен, и код, который устанавливает это свойство, никогда не вызывался. Точно так же необходимые записи пути к муравьям для задач PDE/Build также не были бы настроены должным образом.
Вам нужен Eclipse с PDE, установленным внутри, для запуска сборки, но цель для сборки может быть отдельной от этого.
в build.properties
файл найден под -Dbuilder=c:\pde-build\scripts
Вы можете установить несколько свойств:
baseLocation
Это путь к затмению, которое является вашей целью.buildDirectory
Именно здесь будет происходить сборка, исходный код извлекается из плагинов / и функций / подпапок, но если здесь уже есть бинарные плагины, они также становятся частью цели.pluginPath
Это список путей (разделенных ';' в Windows или ':' в Linux), содержащих другие местоположения, которые следует рассматривать как часть вашей цели. Эти места могут быть несколько вещей:- Корень установки, подобной затмению, с плагинами / и функциями / подпапками. Это хороший способ предоставить пакет delta-pack вместо того, чтобы просто разархивировать его поверх инсталляции eclipse.
- Корень папки, подобной рабочей области, где все подпапки обрабатываются как плагины или функции в зависимости от наличия манифеста или feature.xml.
- Корень пакета или функции, или банка для пакета.
- Корень установки, подобной затмению, с плагинами / и функциями / подпапками. Это хороший способ предоставить пакет delta-pack вместо того, чтобы просто разархивировать его поверх инсталляции eclipse.
- Если вы делаете сборку p2 (
p2.gathering = true
) вы также можете предоставить p2 репозитории под${repoBaseLocation}
который будет преобразован и помещен под${transformedRepoLocation}
и станет частью вашей цели, а метаданные p2 будут использоваться во время сборки.
Еще через некоторое время я узнал, что я до сих пор делал неправильно. Как я упоминал выше, определить целевую платформу не так просто, как скопировать SDK и плагины в одном месте (как это было в ранние времена eclipse dev).
Рабочим решением к настоящему моменту является следующее: Скопируйте eclipse SDK в целевое местоположение и запустите эту версию. Установите внутри него необходимый PDE-Tools, чтобы включить разработку плагинов. После этого закройте IDE и скопируйте дельта-пакет + соответствующий плагин svn (я использовал org.eclipse.pde.build.svn-1.0.1RC2 из sourceforge) в целевую платформу, и все готово. Теперь моя автоматическая сборка PDE работает как положено.
Единственная незначительная проблема в настоящее время заключается в следующем: конечный продукт содержит специфичные для затмения пункты меню, которых не было, когда я запускал их из своего dev-eclipse.
Есть намеки на это?
Я только что опубликовал ответ на свой вопрос по таким темам, может быть, это поможет вам: