Целевая платформа для PDE Безголовая сборка не работает - PullRequest
6 голосов
/ 06 июля 2010

Я сейчас пытаюсь заставить мою безголовую 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, что совершенно сбивает с толку, так как это работает с моей локальной установкой затмения, на которую ссылаются.

Когда я заменяю путь из d:/ target / eclipse для моей локальной установки eclipse, pde build работает как положено!Это приводит меня к выводу, что конфигурация целевого затмения неверна, но в настоящий момент я не знаю, как это настроить!

Моя цель - сначала автоматизировать сборку pde на моем локальном сайте без ссылокмое локальное затмение, а затем и интеграция этого процесса строительства в наш запущенный экземпляр cruisecontrol.

Поскольку я уже видел еще один вопрос об определении целевого затмения, я был бы рад, если бы кто-нибудь мог дать подсказки или факты, касающиеся проблемы.

С уважением, Андреас

Ответы [ 3 ]

5 голосов
/ 06 июля 2010

При выполнении сборки без головы цель может быть отделена от затмения, которое фактически выполняет саму сборку.Проблема, с которой вы столкнулись, заключается в том, что в затмении, которое вы использовали для запуска сборки, не был правильно установлен PDE / Build.

Именно поэтому ${eclipse.pdebuild.scripts} не было установлено, поскольку PDE / Build не был установленв этот экземпляр eclipse пакет org.eclipse.pde.build не был разрешен, и код, который устанавливает это свойство, никогда не вызывался.Точно так же, необходимые записи ant classpath для задач PDE / Build также не были бы настроены должным образом.

Вам необходим Eclipse с PDE, установленным внутри для запуска сборки, но цель для сборки может быть отделена отthis.

В файле build.properties, найденном в -Dbuilder=c:\pde-build\scripts, вы можете установить несколько свойств :

  1. baseLocation Это путь к затмениюэто ваша цель.
  2. buildDirectory Именно здесь будет происходить сборка, источник выбирается в плагины / и функции / подпапки, но если здесь уже есть бинарные плагины, они становятся частьюtarget также.
  3. pluginPath Это список путей (разделенных ';' в windows или ':' в linux), содержащий другие местоположения, которые следует рассматривать как часть вашей цели.Этими местами могут быть несколько вещей:
    1. Корень установки, подобной затмению, с плагинами / и функциями / подпапками.Это хороший способ предоставить пакет delta-pack вместо того, чтобы просто разархивировать его поверх установки eclipse.
    2. Корень папки, подобной рабочей области, где все подпапки рассматриваются как плагины или функциив зависимости от наличия манифеста или файла Feature.xml.
    3. Корень пакета или компонента или банка для пакета.
  4. Если вывыполняете сборку p2 (p2.gathering = true), вы также можете предоставить репозитории p2 под ${repoBaseLocation}, которые будут преобразованы и помещены под ${transformedRepoLocation} и станут частью вашей цели, а метаданные p2 тамполучит повторно во время сборки.
0 голосов
/ 06 июля 2010

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

Плагин продукта VS Функциональный продукт

0 голосов
/ 06 июля 2010

после еще одного времени расследования я узнал, что я до сих пор делал неправильно.Как я упоминал выше, определить целевую платформу не так просто, как скопировать SDK и плагины в одном месте (как это было в ранние времена eclipse dev).

Рабочее решение к настоящему времени следующее: Копированиеeclipse SDK в целевой папке и запустить эту версию.Установите внутри него необходимый PDE-Tools для разработки плагинов.После этого закройте IDE и скопируйте дельта-пакет + соответствующий плагин svn (я использовал org.eclipse.pde.build.svn-1.0.1RC2 из sourceforge) в целевую платформу, и все готово.Теперь моя автоматическая сборка PDE работает, как и ожидалось.

Единственная незначительная проблема сейчас заключается в следующем: в результате продукт содержит специфичные для затмения пункты меню, которых не было, когда я запускал их из своего dev-eclipse.*

Есть какие-нибудь намеки на это?

...