Целевая платформа для 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 Вы можете установить несколько свойств:

  1. baseLocation Это путь к затмению, которое является вашей целью.
  2. buildDirectory Именно здесь будет происходить сборка, исходный код извлекается из плагинов / и функций / подпапок, но если здесь уже есть бинарные плагины, они также становятся частью цели.
  3. pluginPath Это список путей (разделенных ';' в Windows или ':' в Linux), содержащих другие местоположения, которые следует рассматривать как часть вашей цели. Эти места могут быть несколько вещей:
    1. Корень установки, подобной затмению, с плагинами / и функциями / подпапками. Это хороший способ предоставить пакет delta-pack вместо того, чтобы просто разархивировать его поверх инсталляции eclipse.
    2. Корень папки, подобной рабочей области, где все подпапки обрабатываются как плагины или функции в зависимости от наличия манифеста или feature.xml.
    3. Корень пакета или функции, или банка для пакета.
  4. Если вы делаете сборку 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.

Есть намеки на это?

Я только что опубликовал ответ на свой вопрос по таким темам, может быть, это поможет вам:

Плагин продукта VS Особенность продукта

Другие вопросы по тегам