{"id":18811982,"url":"https://github.com/silentsoft/arguments-parser","last_synced_at":"2025-04-13T20:31:54.881Z","repository":{"id":57740722,"uuid":"278104526","full_name":"silentsoft/arguments-parser","owner":"silentsoft","description":"Java command line arguments parser. Do not parsing main(String[] args) anymore !","archived":false,"fork":false,"pushed_at":"2023-08-23T02:23:09.000Z","size":61,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"dev","last_synced_at":"2024-05-02T02:43:50.970Z","etag":null,"topics":["arguments","command-line","parser"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/silentsoft.png","metadata":{"funding":{"github":"silentsoft","patreon":"silentsoft","open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"lfx_crowdfunding":null,"custom":"silentsoft.org/donate"},"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-07-08T14:00:03.000Z","updated_at":"2024-04-24T20:31:50.000Z","dependencies_parsed_at":"2023-02-15T23:15:59.140Z","dependency_job_id":null,"html_url":"https://github.com/silentsoft/arguments-parser","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/silentsoft%2Farguments-parser","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/silentsoft%2Farguments-parser/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/silentsoft%2Farguments-parser/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/silentsoft%2Farguments-parser/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/silentsoft","download_url":"https://codeload.github.com/silentsoft/arguments-parser/tar.gz/refs/heads/dev","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223604935,"owners_count":17172402,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["arguments","command-line","parser"],"created_at":"2024-11-07T23:28:40.665Z","updated_at":"2024-11-07T23:28:41.453Z","avatar_url":"https://github.com/silentsoft.png","language":"Java","funding_links":["https://github.com/sponsors/silentsoft","https://patreon.com/silentsoft","silentsoft.org/donate"],"categories":[],"sub_categories":[],"readme":"# Arguments Parser\n\n[![Maven Central](https://img.shields.io/maven-central/v/org.silentsoft/arguments-parser)](https://search.maven.org/artifact/org.silentsoft/arguments-parser)\n[![Build Status](https://app.travis-ci.com/silentsoft/arguments-parser.svg?branch=master)](https://app.travis-ci.com/silentsoft/arguments-parser)\n[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=silentsoft_arguments-parser\u0026metric=alert_status)](https://sonarcloud.io/dashboard?id=silentsoft_arguments-parser)\n[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=silentsoft_arguments-parser\u0026metric=coverage)](https://sonarcloud.io/dashboard?id=silentsoft_arguments-parser)\n[![Hits](https://hits.sh/github.com/silentsoft/arguments-parser.svg)](https://hits.sh/github.com/silentsoft/arguments-parser/)\n\n\u003e Do not parsing main(args) anymore !\n\n`Arguments Parser` is a simple java library to parse command line arguments.\n\n## Supported Formats\n  * -a -b\n  * -key1=value1 -key2=value2\n  * -key1 value1 -key2 value2\n  * -key1=value1 value2 -key2=value3 value4\n  * -key1 value1 value2 -key2 value3 value4\n  * --a --b\n  * --key1=value1 --key2=value2\n  * --key1 value1 --key2 value2\n  * --key1=value1 value2 --key2=value3 value4\n  * --key1 value1 value2 --key2 value3 value4\n\n## Maven Central\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003eorg.silentsoft\u003c/groupId\u003e\n    \u003cartifactId\u003earguments-parser\u003c/artifactId\u003e\n    \u003cversion\u003e2.0.1\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\n## Usage\n```java\npublic static void main(String[] args) throws Exception {\n    Arguments arguments = Arguments.parser(args).parse();\n}\n```\n\n## Advanced Topics\n\n### Arguments Helper Usage\nIf the `args` contains one of the following help commands then `ArgumentsHelper.help(Arguments)` will be invoked.\n  * -help\n  * --help\n  * -?\n  * --?\n```java\npublic static void main(String[] args) throws Exception {\n    Arguments arguments = parseArguments(args);\n}\n\nprivate static Arguments parseArguments(String[] args) throws InvalidArgumentsException {\n    return Arguments.parser(args).help(arguments -\u003e {\n        StringBuilder builder = new StringBuilder();\n        builder.append(\"Usage: java -jar application.jar [arguments]\\n\");\n        builder.append(\"\\n\");\n        builder.append(\"Common arguments:\\n\");\n        // ...\n        System.out.println(builder.toString());\n\n        System.exit(0);\n    }).parse();\n}\n```\n\n### Arguments Validator Usage\n```java\npublic static void main(String[] args) throws Exception {\n    Arguments arguments = parseArguments(args);\n}\n\nprivate static Arguments parseArguments(String[] args) throws InvalidArgumentsException {\n    return Arguments.parser(args).validate(arguments -\u003e {\n        if (arguments.containsKey(\"-a\") \u0026\u0026 arguments.containsKey(\"-b\")) {\n            throw new InvalidArgumentsException(\"'-a' and '-b' cannot be exists together.\");\n        }\n\n        return true;\n    }).parse();\n}\n```\n\n### Parsing Options with dash prefix\n  * LEAVE_DASH_PREFIX `(default)`\n  * CASE_SENSITIVE_SINGLE_DASH `(default)`\n  * CASE_INSENSITIVE_SINGLE_DASH\n  * CASE_SENSITIVE_DOUBLE_DASH\n  * CASE_INSENSITIVE_DOUBLE_DASH `(default)`\n\n### Parsing Options without dash prefix\n  * REMOVE_DASH_PREFIX\n  * CASE_SENSITIVE\n  * CASE_INSENSITIVE\n\n### Usage\n```java\npublic static void main(String[] args) throws Exception {\n    Arguments arguments = Arguments.parser(args, ParsingOptions...).parse();\n}\n```\n\n## Packaging\n```\n$ mvn clean package\n```\n\n## Contributing\nPull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.\n\nPlease note we have a [CODE_OF_CONDUCT](https://github.com/silentsoft/arguments-parser/blob/master/CODE_OF_CONDUCT.md), please follow it in all your interactions with the project.\n\n## License\nPlease refer to [LICENSE](https://github.com/silentsoft/arguments-parser/blob/master/LICENSE.txt).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsilentsoft%2Farguments-parser","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsilentsoft%2Farguments-parser","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsilentsoft%2Farguments-parser/lists"}