-
Notifications
You must be signed in to change notification settings - Fork 427
Home
Remko Popma edited this page Sep 7, 2018
·
36 revisions
...because your users don't want the extra jar file just to parse command line options.
...because the usage help is the face of your command line interface.
...so users of your application can just press <TAB>
to see the available options and subcommands.
- runs on Java 5 or higher
- annotation API - almost no code
- programmatic API - for dynamic configuration
- git-style subcommands
- nested sub-subcommands
- strongly typed option parameters
- strongly typed positional parameters
- many, many built-in types
- easily add custom type converters
- interactive password options
- supports multi-value options
- supports Maps for options and positional parameters (like
-Dkey=value
Java system properties) - intuitive model for how many arguments an option consumes
- allows any option prefix
- fluent API
- convenience methods for Runnable and Callable commands
- supports both mixins and subclassing for reuse
- built-in support for standard
--help
and--version
options (zero code) - built-in
help
subcommand - uses
STDERR
for error messages,STDOUT
for requested help by default - parser tracing to facilitate troubleshooting
- POSIX-style clustered short options
- quality documentation
- built-in Groovy script support
- easily integrates with Dependency Injection containers