我希望使用Spring-Shell
为技术支持团队构建诊断实用程序。我们的想法是将可执行文件jar
放在系统上,运行应用程序并让它运行一堆诊断程序。
我想禁用/删除从org.springframework.shell.commands
包中自动加载的一些命令,我无法弄清楚如何做到这一点。有可能吗?
如果不这样做,我想自定义帮助命令,以便我可以输出自己的帮助。我甚至无法实现这一点,但我能够弄清楚如何从用户点击 TAB 时显示的命令列表中删除它们。
@CliAvailabilityIndicator({"!", "//", "script","system"})
public boolean isAvailable()
{
return false;
}
有什么想法吗?
答案 0 :(得分:0)
如果要排除某些内置命令。将--disableInternalCommands参数传递给main函数(请参阅上一篇文章),并将org.springframework.shell.commands包添加到spring组件扫描路径,并使用exculde过滤器删除内置命令。
<强>弹簧壳的plugin.xml 强>
<beans>
<context:component-scan base-package="com.foo.bar.commands, org.springframework.shell.commands" >
<context:exclude-filter type="regex" expression=".*(ScriptCommands|DateCommands|SystemPropertyCommands|VersionCommands)" />
</context:component-scan>
</beans>