在Apache Karaf 3.0.x中是否有覆盖键入--help?时显示的默认帮助消息?
我浏览了文档但找不到任何内容。 我查看了源代码并在DefaultActionPreparator.prepare()中找到它在参数中检查--help字符串,如果它在那里它运行ActionMetaData类的printUsage()函数。问题是我没有看到任何简单的方法来覆盖它。 它看起来像在Karaf 4.0.x或者可能有5件事情被重构以更容易覆盖帮助功能,但我目前正在使用3.0.4并且无法在我的生产系统中升级到实验版本。
那么,是否有人知道是否可以覆盖命令的帮助消息,如果是,您是否知道某些文档?
答案 0 :(得分:0)
无法覆盖默认帮助,但您可以通过在OSGI-INF中添加一个使用简单标记获取帮助的bundle.info文件,在您自己的命令上添加自己的帮助
例如:
h1. Synopsis
${project.name}
${project.description}
Maven URL:
\u001B[33mmvn:${project.groupId}/${project.artifactId}/${project.version}\u001B[0m
h1. Description
This bundle provides the Karaf shell commands to manipulate DS Components.
h1. Commands
The following commands are available:
\${command-list|scr|indent=8,list,cyan}
h1. See also
\u001B[36mCommands\u001B[0m and \u001B[36mDeclarative Services\u001B[0m sections of the Karaf User Guide.
或此处https://github.com/apache/karaf/blob/master/scr/command/src/main/resources/OSGI-INF/bundle.info
修改强>
我唯一想到的就是" Patch"现有的帮助可能是一个片段bundle,它附加到bundle以更改帮助。幸运的是,类加载器宁愿加载片段而不是host-bundle的帮助。这曾经也适用于补丁"清单所以为什么不这样做。