我正在为一个Eclipse项目编写向导,并希望在Require-Bundle
中包含另一个插件,例如Manifest.MF
。
我有要包含的IProject
,是否可以在不解析Bundle-SymbolicName
的情况下访问其Manifest.MF
?还是有其他方法可以避免手动解析?
答案 0 :(得分:1)
IProject
可能不表示插件,并且没有任何直接API来获取插件ID。
您可以使用普通的Java Manifest
类通过以下方式查看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用于查找插件的代码。