【发布时间】:2021-03-28 01:54:28
【问题描述】:
我知道在我寻找答案之前,这个问题已经在这里和其他地方被问过很多次了。但是,它仍然让我感到困惑,为什么命令行解析器库不提供这种常见的使用场景,我有一组子命令,每个子命令都有自己的一组必需和可选参数。类似的结构可以在 git/svn 中找到,尽管在他们的情况下,如果我没记错的话,子命令命令是一个独立的程序。
总而言之,我正在寻找一种简单的方法:
top_command subcmd_A [ command A's options ....]
top_command subcmd_B [ command B's options ....]
...
在 java 的世界里,两个经常被提及的库是 Apache Command CLI 和 JSAP。我没有看到他们中的任何一个都考虑到这一点-尽管您可能可以调整和自定义很多以适应...但是定义选项的基本流程,注册...然后最后,将它们全部解析' t 看到考虑使用不同子命令的情况,验证和解析器需要以不同的方式运行。
也许这里的普遍看法是,这太特定于应用程序,应该留给应用程序本身来处理。我能想到的一种方法是定义一个 BaseCommand 类,每个子命令扩展它并注册它们自己......作为一种分解它以便于管理的方法。如果有任何成熟的框架可以做到这一点,我将不胜感激。
不过,我对当前解析器功能的理解可能是错误的,非常感谢任何见解。
【问题讨论】:
标签: java