【发布时间】:2015-06-03 10:01:15
【问题描述】:
我对 Apache commons-cli v1.3 有点苦恼,但我还没有找到解决以下问题的实用解决方案:
我有一个命令行工具 - 根据指定的参数 - 创建一个字符串(或从本地文件中读取它),可能对其进行内联编辑,并可选择显示、将所述字符串写入本地文件或通过对服务器的 HTTP 请求。
所以我有选项“c”代表“create”,“r”代表“read”,“e”代表“edit”(通过 cli),“d”代表显示,“w”代表“write” , 和“p”代表“推送到服务器”
显然有些组合是可能的。例如。应该可以创建此字符串并将其推送,而无需从文件读取或写入文件。另外,应该可以在不推送的情况下创建和编写,等等......
所以参数的语义是:
("c" OR ("r" ["e"])) ["d" "w" "p"]
显然,当 String 是“c”reated 时,它不能是“r”ead。当“c”reating 时,我会使用来自 cli-parser 的交互式输入。当“r”阅读时,我想允许用户通过 cli 的交互式输入“e”dit。其余参数是可选的。
下一步:“r”读取时,需要指定文件名/路径。此外,在“写作”时,这是必要的。无论如何,应该可以指定要读取的文件和要写入的第二个文件。所以文件名会有两个参数,都是可选的。
生成的语法如下所示:
tool -cp
tool -rp "filenametoread"
tool -rdwp "filenametoread" "filenametowrite"
tool -cw "filenametowrite"
等等。
我有点迷路了。如何将 commons-cli 配置为具有两个文件名参数,根据指定的参数(选项)需要这些参数?这甚至可能吗?
【问题讨论】: