我尝试左右搜索,但找不到 Eclipse 正在使用的 p2 存储库格式的规范。
我有兴趣阅读 p2 元数据(content.xml/jar
和artifacts.xml/jar
),我想知道它们的语法、存储库布局(复合与简单等)
当然,我可以通过查看一些现有的存储库来对此进行逆向工程,但我想知道是否有文档详细描述了这一点。
我尝试左右搜索,但找不到 Eclipse 正在使用的 p2 存储库格式的规范。
我有兴趣阅读 p2 元数据(content.xml/jar
和artifacts.xml/jar
),我想知道它们的语法、存储库布局(复合与简单等)
当然,我可以通过查看一些现有的存储库来对此进行逆向工程,但我想知道是否有文档详细描述了这一点。
这些文件的格式不被视为 API,因此没有规范。这些实际上只是 p2 存储库的一种格式,如果您愿意,可以插入自己的格式。存储库格式的唯一 API 是 IMetadataRepository 和 IArtifactRepository 的实现。
如果您想处理这些文件,我建议加载存储库(使用 IMetadataRepositoryManager 和 IArtifactRepositoryManager)并使用这些接口公开的 API。
是的,没有 OSGi,p2 实际上是无法使用的。但是,如果您需要使用 p2 API 的小型命令行应用程序示例,我建议您查看p2diff。您可能还会发现以下链接很有趣:Query Language for p2。如果您真的坚决反对使用 Equinox,您可以尝试查看org.eclipse.equinox.internal.p2.metadata.repository.MetadataRepositoryIO.Parser
-org.eclipse.equinox.internal.p2.artifact.repository.simple.SimpleArtifactRepositoryIO.Parser
毕竟它只是 XML(尽管很复杂)。