cli parser_Java命令行界面(第27部分):cli-parser

cli parser

CLI Parser最初托管在Google Code上,现在已存档在Google Code上 ,现在可以在GitHub上使用Google Code项目档案页面将CLI Parser描述为“使用非常简单,非常小的依赖项”,它使用注释“使非常简洁的主要方法不需要知道如何解析带有字段,属性,或基于方法的注射。” 当前的GitHub项目页面将CLI解析器描述为“一个很小的,超级易于使用的库,用于解析各种命令行参数或属性列表。”

CLI Parser期望“定义”阶段将通过@Argument注释实现。 在下一个代码清单中对此进行了演示,该清单提供了一个简单的示例,定义了“文件”和“详细”选项,如本系列以前的文章中所做的那样 。 完整的代码清单可在GitHub上找到

CLI解析器的“定义”阶段

@Argument(alias="f", description="Path/name of the file", required=true)
private String file;

@Argument(alias="v", description="Verbosity enabled?")
private boolean verbose;

上面显示的代码定义了两个选项。 可以使用与字段名称匹配的名称( fileverbose )或指定的别名( fv )来指定每个选项。 使用CLI分析器,在命令行中使用单个连字符表示大小写(全字段名或别名)。 如代码示例所示,可以将选项指定为“ required”,并可以提供描述文本以在帮助/使用情况语句中使用。

CLI Parser中的“解析”阶段是通过其Args类上的静态函数完成的。 在这种情况下,我将使用Args.parseOrExit(Class, String[])函数,如下面的代码清单所示。

CLI解析器的“解析”阶段

final List<String> unparsed = Args.parseOrExit(instance, arguments);

通过访问用@Argument注释的字段来完成“询问”阶段,如下面的代码清单所示。

CLI解析器的“询问”阶段

out.println(
   "File path/name is '" + instance.file + "' and verbosity is " + instance.verbose);

“定义”代码将“文件”选项定义为“必需”。 如果未在命令行上指定此选项,则CLI Parser会使用相应@Argument批注中提供的“ description”值自动打印出用法说明。 这在下一个屏幕快照中显示,随后是另一个屏幕快照,指示-file / -f-verbose / -v选项的组合。

选择框架或库来帮助Java进行命令行解析时,需要考虑CLI解析器的特性。

  • CLI Parser是开源的,可在Apache License Version 2下获得。
  • CLI Parser是一个小型轻量级的库,其中cli-parser-1.1.2.jar约为15 KB,没有第三方依赖性。

正如宣传的那样,CLI Parser是“微型”和“超级易用的库,用于解析各种命令行参数。” 它是开放源代码的Apache许可,对于大多数组织而言,它很容易获得和使用它。

其他参考

翻译自: https://www.javacodegeeks.com/2017/10/java-command-line-interfaces-part-27-cli-parser.html

cli parser

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值