silentsoft / arguments-parser

Java command line arguments parser. Do not parsing main(String[] args) anymore !

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Arguments Parser

Maven Central Build Status Quality Gate Status Coverage Hits

Do not parsing main(args) anymore !

Arguments Parser is a simple java library to parse command line arguments.

Supported Formats

  • -a -b
  • -key1=value1 -key2=value2
  • -key1 value1 -key2 value2
  • -key1=value1 value2 -key2=value3 value4
  • -key1 value1 value2 -key2 value3 value4
  • --a --b
  • --key1=value1 --key2=value2
  • --key1 value1 --key2 value2
  • --key1=value1 value2 --key2=value3 value4
  • --key1 value1 value2 --key2 value3 value4

Maven Central

<dependency>
    <groupId>org.silentsoft</groupId>
    <artifactId>arguments-parser</artifactId>
    <version>2.0.1</version>
</dependency>

Usage

public static void main(String[] args) throws Exception {
    Arguments arguments = Arguments.parser(args).parse();
}

Advanced Topics

Arguments Helper Usage

If the args contains one of the following help commands then ArgumentsHelper.help(Arguments) will be invoked.

  • -help
  • --help
  • -?
  • --?
public static void main(String[] args) throws Exception {
    Arguments arguments = parseArguments(args);
}

private static Arguments parseArguments(String[] args) throws InvalidArgumentsException {
    return Arguments.parser(args).help(arguments -> {
        StringBuilder builder = new StringBuilder();
        builder.append("Usage: java -jar application.jar [arguments]\n");
        builder.append("\n");
        builder.append("Common arguments:\n");
        // ...
        System.out.println(builder.toString());

        System.exit(0);
    }).parse();
}

Arguments Validator Usage

public static void main(String[] args) throws Exception {
    Arguments arguments = parseArguments(args);
}

private static Arguments parseArguments(String[] args) throws InvalidArgumentsException {
    return Arguments.parser(args).validate(arguments -> {
        if (arguments.containsKey("-a") && arguments.containsKey("-b")) {
            throw new InvalidArgumentsException("'-a' and '-b' cannot be exists together.");
        }

        return true;
    }).parse();
}

Parsing Options with dash prefix

  • LEAVE_DASH_PREFIX (default)
  • CASE_SENSITIVE_SINGLE_DASH (default)
  • CASE_INSENSITIVE_SINGLE_DASH
  • CASE_SENSITIVE_DOUBLE_DASH
  • CASE_INSENSITIVE_DOUBLE_DASH (default)

Parsing Options without dash prefix

  • REMOVE_DASH_PREFIX
  • CASE_SENSITIVE
  • CASE_INSENSITIVE

Usage

public static void main(String[] args) throws Exception {
    Arguments arguments = Arguments.parser(args, ParsingOptions...).parse();
}

Packaging

$ mvn clean package

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please note we have a CODE_OF_CONDUCT, please follow it in all your interactions with the project.

License

Please refer to LICENSE.

About

Java command line arguments parser. Do not parsing main(String[] args) anymore !

License:Apache License 2.0


Languages

Language:Java 100.0%