Целевая платформа для Бездисплейной сборки PDE не работает

Я в настоящее время пытаюсь получить свою бездисплейную работу pde-сборки, но я застреваю на точке, где я не знаю, как продолжить. Проблема состоит в том, как определить связанную целевую платформу для компиляции плагинов против. У меня есть 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 %*

Я пытался создать целевую платформу затмения из различных частей: затмение SDK, RCP SDK, Пакет Delta, 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 до моей локальной установки затмения работы сборки pde как ожидалось! Это приводит мой до такой степени, что конфигурация целевого затмения не корректна, но в момент я понятия не имею, как настроить это!

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

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

С уважением, Andreas

6
задан Andreas 6 July 2010 в 08:21
поделиться

3 ответа

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

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

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

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

  1. baseLocation Это путь к затмению, которое является вашей целью.
  2. buildDirectory Здесь фактически будет происходить сборка, исходный код извлекается в подкаталоги plugins / и features /, но если здесь уже есть двоичные плагины, они также становятся частью цели.
  3. pluginPath Это список путей (разделенных ';' в Windows или ':' в Linux), содержащих другие местоположения, которые следует рассматривать как часть вашей цели. Этими локациями может быть несколько вещей:
    1. Корень установки, подобной eclipse, с вложенными папками plugins / и features /. Это хороший способ предоставить дельта-пакет вместо того, чтобы просто распаковывать его поверх установки eclipse.
    2. Корень папки, похожей на рабочую область, где все подпапки обрабатываются как плагины или функции в зависимости от наличия manifest или feature.xml.
    3. Корневой каталог пакета или функции или jar-файл для пакета.
  4. Если вы выполняете сборку p2 ( p2.gathering = true ), вы также можете предоставить репозитории p2 в $ {repoBaseLocation} , который будет преобразован и помещен в ] $ {transformedRepoLocation} и станет частью вашей цели, а метаданные p2 будут повторно использованы во время сборки.
5
ответ дан 17 December 2019 в 04:41
поделиться

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

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

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

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

0
ответ дан 17 December 2019 в 04:41
поделиться

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

Plugin product VS Feature product

0
ответ дан 17 December 2019 в 04:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: