#java #eclipse #eclipse-plugin
#java #eclipse #eclipse-плагин
Вопрос:
Я пишу мастер для проекта eclipse и хочу включить другой плагин как Require-Bundle
в Manifest.MF
.
У меня есть то, IProject
что я хочу включить, могу ли я получить к нему доступ, Bundle-SymbolicName
не разбирая Manifest.MF
? Или есть другие способы избежать ручного синтаксического анализа?
Ответ №1:
IProject
Может не представлять подключаемый модуль и не иметь прямого API для получения идентификатора подключаемого модуля.
Вы можете использовать обычный класс Java Manifest
для просмотра МАНИФЕСТА.MF, используя что-то вроде:
IProject project = ...
IFile manifestResource = project.getFile(new Path("META-INF/MANIFEST.MF"));
if (manifestResource.exists()) {
try (InputStream stream = manifestResource.getContents()) {
Manifest manifest = new Manifest();
manifest.read(stream);
String symbolicName = manifest.getMainAttributes().getValue("Bundle-SymbolicName");
} catch (CoreException | IOException ex) {
...
}
}
Этот код адаптирован из кода, используемого Eclipse PDE для поиска подключаемого модуля.