如何从 IProject 中获取 Bundle-SymbolicName?
How to get the Bundle-SymbolicName from an IProject?
我正在为 eclipse 项目编写一个向导,并希望在 Manifest.MF
.
中包含另一个插件 Require-Bundle
我有要包含的 IProject
,我可以在不解析 Manifest.MF
的情况下访问它的 Bundle-SymbolicName
吗?或者还有其他方法可以避免手动解析吗?
一个IProject
可能不代表插件,也没有任何直接API获取插件id。
您可以使用正常的 Java Manifest
class 来查看 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 用于查找插件的代码。
我正在为 eclipse 项目编写一个向导,并希望在 Manifest.MF
.
Require-Bundle
我有要包含的 IProject
,我可以在不解析 Manifest.MF
的情况下访问它的 Bundle-SymbolicName
吗?或者还有其他方法可以避免手动解析吗?
一个IProject
可能不代表插件,也没有任何直接API获取插件id。
您可以使用正常的 Java Manifest
class 来查看 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 用于查找插件的代码。