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,此处写zhRequire-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
尊重自己的内心,尊重别人的选择。