ctkPluginFramework中的MANIFEST.MF文件的说明

在创建ctk插件时,有一个对插件进行信息描述的文件:MANIFEST.MF,在 ctkPluginConstants 类中可以找到ctk中使用的信息:

  • Plugin-SymbolicName:插件的符号名,插件的唯一标识
  • Plugin-Copyright:插件的版权信息
  • Plugin-Description:插件的简要描述
  • Plugin-Name:插件的名称,对插件起说明作用,不影响插件功能
  • Plugin-Vendor:插件的供应商
  • Plugin-Localization:标识插件的Qt .qm 文件的基本名称:如中文qt_zh.qm,此处写zh
  • Require-Plugin:插件所需的其他插件的符号名称
  • Plugin-Version:插件的版本号
  • Plugin-ActivationPolicy:插件的激活策略
  • Plugin-UpdateLocation:在插件更新操作期间,获取新插件版本的位置

插件的版本号由 Plugin-Version 头指定,语法如下:

version ::= majorVersion('.'minorVersion('.'microVersion('.'qualifier)?)?)?
majorVersion ::= digit+
minorVersion ::= digit+
microVersion ::= digit+
qualifier ::= (alpha|digit|'_'|'-')+
digit ::= [0..9]
alpha ::= [a..zA..Z]

PS:version 中不能有空格

插件的激活策略由 Plugin-ActivationPolicy指定,默认值是 lazy

  • eager:插件使用 ctkPlugin::START_ACTIVATION_POLICY 选项启动,当框架启动时会立即激活。
  • lazy:插件使用 ctkPlugin::START_ACTIVATION_POLICY 选项启动,并在 ctkPlugin::STARTING 状态等待,直到插件的第一类实例化发生。插件将在实例返回给请求者之前被激活

插件依赖的插件由Require-Plugin指定,

resolution用来标识Require-Plugin中的解析类型,默认值是mandatory。包括:

  • optional(可选的):表示所需的插件是可选的,并且即使所需的插件没有被解析,该插件也可以被解析。
  • mandatory(强制的):表示在解析插件时,所需的插件也必须被解析。如果所需的插件不能被解析,则模块解析失败。

示例如下:

Require-Plugin: com.superbi.module.test; resolution:="optional"

plugin-version用来标识 Require-Plugin 中指定插件的版本,默认值是 0.0.0

示例如下:

Require-Plugin: com.superbi.module.test; plugin-version="1.0.1"
Require-Plugin: com.superbi.module.test; plugin-version="[1.0.0,2.0.0)"

如果指定为单个版本,则意味着包含大于或等于指定版本的任何插件。

获取MANIFEST.MF的数据通过getHeader、getSymbolicName和getVersion进行。

getHeader返回QHash<QString, QString>,包含了所有信息。

参考链接:http://www.voidcn.com/article/p-bclkrnrz-bqt.html

原文地址:https://www.cnblogs.com/superbi/p/12454012.html