具有子命令支持的Scala命令行解析器

时间:2011-11-13 16:19:00

标签: scala parsing command-line-arguments picocli

我正在寻找Scala的命令行解析器,支持子命令(类似于Python中的argparse)。看起来Scala(Scopt,Argot等)有许多不同的命令行解析器,但它们似乎都不支持子命令解析。我只是错过了这些其他库支持子命令的事实,如果没有,是否存在这样的库?

4 个答案:

答案 0 :(得分:3)

我猜测问问题有点太迟了,但是现在有一个支持子命令的命令行解析器(2013年2月)。

Scallop支持子命令。从那里的README复制(见报价的最后一行):

Scallop supports:

    - flag, single-value and multiple value options
    - POSIX-style short option names (-a) with grouping (-abc)
    - GNU-style long option names (--opt)
    - Property arguments (-Dkey=value, -D key1=value key2=value)
    - Non-string types of options and properties values (with extendable converters)
    - Powerful matching on trailing args
    - Subcommands

答案 1 :(得分:3)

您可能对picocli感兴趣。它支持子命令以及许多其他功能。

当底层平台支持ANSI转义码时,Picocli会生成彩色使用帮助。

enter image description here

答案 2 :(得分:1)

如果您希望将程序或多或少地保留在功能习语集中,请考虑scala-optparse-applicative之类的内容:

答案 3 :(得分:-3)

虽然我觉得你不应该在Scala中创建命令行应用程序,如果必须,你可以查看CédricBuest的JCommander,这是一个java库,但显然可以用于Scala,应该做你需要的一切。