Почему наша сборка Eclipse 3.6 (Helios) PDE завершается с ошибкой NullPointerException? - PullRequest
0 голосов
/ 17 марта 2011

Наше приложение Eclipse RCP имеет установку без PDE Build из Eclipse 3.2, которая работает уже много лет.Недавно мы обновили как экземпляр Eclipse, который мы используем для сборки без PDE, так и нашу целевую платформу до версии 3.6 (главным образом , чтобы иметь возможность создавать гиперссылки «в» наше приложение ), и сборка без головы PDE теперь не работаетwith:

 ...
 [java] generateFeature:
 [java]
 [java] fetch:
 [java]
 [java] generateFeature:
 [java]
 [java] BUILD FAILED
 [java] C:\Projects\[...]\PDE Build\plugins\org.eclipse.pde.build_3.6.2.R36x_20110203\scripts\productBuild\productBuild.xml:39: The following error occurred while executing this line:
 [java] C:\Projects\[...]\PDE Build\plugins\org.eclipse.pde.build_3.6.2.R36x_20110203\scripts\productBuild\productBuild.xml:69: java.lang.NullPointerException
 [java]
 [java] Total time: 0 seconds
 [java] An error has occurred. See the log file
 [java] C:\Projects\[...a separate area dedicated to making builds...]\workspace\.metadata\.log.

Соответствующая часть трассировки стека в файле журнала может выглядеть следующим образом:

java.lang.NullPointerException
at org.eclipse.pde.internal.build.BundleHelper.getProvisioningAgent(BundleHelper.java:104)
at org.eclipse.pde.internal.build.AbstractScriptGenerator.getAssociatedRepositories(AbstractScriptGenerator.java:625)
at org.eclipse.pde.internal.build.AbstractScriptGenerator.getSite(AbstractScriptGenerator.java:332)
at org.eclipse.pde.internal.build.FeatureGenerator.createFeature(FeatureGenerator.java:339)
at org.eclipse.pde.internal.build.FeatureGenerator.generate(FeatureGenerator.java:161)
at org.eclipse.pde.internal.build.tasks.FeatureGeneratorTask.run(FeatureGeneratorTask.java:54)
at org.eclipse.pde.internal.build.tasks.FeatureGeneratorTask.execute(FeatureGeneratorTask.java:36)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
...

Экземпляр PDE Build Eclipse был создан согласно thisпроцесс .Мы пытались произвести как можно более чистую целевую платформу, но (при отсутствии четких инструкций или скорейшего успеха) прибегли к распаковке eclipse-rcp-helios-SR2-win32.zip в каталог, а затем распаковке eclipse-3.6.2-delta-pack.zip поверх него.

Как мы можем восстановить наш процесс сборки PDE до рабочего состояния?

1 Ответ

1 голос
/ 17 марта 2011

Возможно, наш build.properties слишком старый (из шаблона 3.2, возможно), или, возможно, мы неправильно сконструировали нашу целевую платформу, но благодаря сообщению в блоге Кая Тёдтера , одного из многих Потенциальными средствами, которые мы испытывали в отчаянии, было (согласно «уловке 1» Кая) удаление всего из каталога нашей целевой платформы, кроме каталогов plugins и features. Это по крайней мере остановило PDE Build при загадочных удушьях, а сообщения об ошибках привели нас к остальным исправлениям, которые мы должны были сделать. (В нашем случае эти исправления почти полностью состояли из обновления списка обязательных подключаемых модулей для определения вторичного (тестового) продукта путем нажатия «Добавить обязательные подключаемые модули» и удаления ссылки на фрагмент org.eclipse.ant.optional.junit4.)

Действительно, похоже, что простого удаления одной из следующих строк из configuration/config.ini целевой платформы достаточно для открепления PDE Build:

eclipse.p2.profile=epp.package.rcp

(или)

eclipse.p2.data.area=@config.dir/../p2

... хотя мы предпочли просто убрать все, кроме plugins и fragments, чтобы не было других магических существ, скрывающихся на целевой платформе, которые потенциально могли бы сбить нас с толку.

(Мы не понимаем, почему удаление одной из этих строк успокоило бы сборку PDE ... но мы вернулись к работе.)

...