我正在寻找Scala的命令行解析器,支持子命令(类似于Python中的argparse)。看起来Scala(Scopt,Argot等)有许多不同的命令行解析器,但它们似乎都不支持子命令解析。我只是错过了这些其他库支持子命令的事实,如果没有,是否存在这样的库?
答案 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)
答案 2 :(得分:1)
如果您希望将程序或多或少地保留在功能习语集中,请考虑scala-optparse-applicative
之类的内容:
答案 3 :(得分:-3)
虽然我觉得你不应该在Scala中创建命令行应用程序,如果必须,你可以查看CédricBuest的JCommander,这是一个java库,但显然可以用于Scala,应该做你需要的一切。