Eclipse PDE: программно читать содержимое целевой платформы
В моем приложении целевая платформа должна содержать некоторые из моих пользовательских плагинов помимо плагинов eclipse. Во время использования приложения я хочу проверить содержимое целевой платформы по установленной папке, которая должна содержать мои пользовательские плагины.
По сути, я хотел бы получить список всех пакетов на целевой платформе (плагины Eclipse + мои пользовательские плагины).
Я попытался использовать getBundleContext() в ResourcesPlugin и PDEPlugin, но он возвращает только плагины eclipse bas, а не мои собственные плагины.
0 ответов
ITargetPlatformService service = PDECore.getDefault().acquireService(ITargetPlatformService.class);
for (TargetBundle targetBundle: service.getWorkspaceTargetDefinition().getBundles()) {
//then get name of plugin via targetBundle.getBundleInfo().getSymbolicName()
}
Проблема с этим кодом заключается в том, что вы получаете предупреждение, подобное: Запрещенный доступ: тип 'PDECore' не является API (ограничение на требуемую библиотеку '...\eclipse-rcp-photon-R-win32-x86_64\plugins\org.eclipse.pde.core_3.12.0.v20180516-1159.jar')