2017-02-23 4 views
1

org.apache.commons.cliパッケージを使用してコマンドラインオプションを使用するツールがあるとします。私はオプションを定義しますorg.apache.commons.cliの短いオプションと長いオプションを区別できますか?

Options opts = new Options(); 
opts.addOption("v", "version", false, "print tool version information"); 

したがって、ユーザーはツールを-vまたは--versionコマンドラインオプションで呼び出すことができます。

問題は、ユーザーが-vまたは--versionを入力したかどうかを私のコードで伝えることができますか?

私が考えているのは、長いバージョンのコマンドラインオプションを冗長な出力に関連付け、短いバージョンには冗長ではないものを関連付けることです。したがって、ユーザーが-vを渡すと、ツールのバージョン番号が表示されますが、ユーザーが--versionを入力すると、ツールのバージョン、依存関係のバージョン、その他のバージョンとベンダー情報、など

つの質問:

  1. は、それを効果的にorg.apache.commons.cliで行うことができますか?
  2. ユーザーの観点からは良いアイデアですか?これは一般的な練習ですか、私はここで何か秘密を発明していますか?

このアプローチの実装と哲学についての経験豊かな方々に感謝します。コマンドラインを解析した後actualcommandlineにアクセスせずにオプションのマッチングに解析されたとして予め

答えて

1

おかげで私は、あなたがその情報をこのようになりますとは思いません。

「v」と「version」の2つの別々のOptionオブジェクトを定義すると、2つのオプションのどれが一致しているかを確認できます。

+0

これも私が来た結論です。ちょうど私が何かを見落としたかどうかを確認したいありがとう –

関連する問題