OSGi shell 具有命令历史记录、行编辑且不仅是基本命令

OSGi shell with command history, line edit and not only basic commands

当我尝试在 Internet 上搜索它时,似乎几乎没有人谈论它,好像它对每个人都有效,或者没有人关心。

我已经安装了 Karaf,我发现它有一个非常好的 shell,大约有 100 个对我有用的命令。但是当我使用 Felix+gogo 或 Equinix+gogo 时:

这只是我的问题还是这就是 gogo 的工作方式?我怎样才能在 Felix 或 Equinox 中正常,XXI 世纪,shell?

这是标准行为。 Karaf Shell 是经过改进的 GogoShell,具有许多增强功能。 比如历史等等。 对于 package:export 等,找到相应的 Karaf 项目包并尝试是否可以在您的项目中使用它们。它只是一个提供这些命令的 Bundle。如果你愿意,也可以切换到 Karaf。

缺少命令行编辑的原因是它通常需要本机代码。显然,您不想向框架添加本机代码依赖项。 Gogo 的设计范围是绝对最小的 shell,可以 运行 无处不在,也可以嵌入。

用 JLine 包装 Gogo 非常容易 shell。这基本上是 Karaf 人所做的,尽管这使得它成为比内置 shell 更重的资源。

OSGi 就是依赖关系。如果你是框架,你想积极地最小化它们。也就是说,插件模型工作正常,只需添加一个 shell 包。