Сокращенные опции в Commons Cli приняты неверно - PullRequest
0 голосов
/ 06 февраля 2019

Код

private static void buildMyCliOptions() { 


             optionsMyAdd.addOption(Option.builder()
                         .longOpt("my-address")
                         .argName("property=value")
                         .hasArg()
                         .desc("Specify Address")
                         .required()
                         .build());


             optionsMyAdd.addOption(Option.builder()
                         .longOpt("My-port")
                         .argName("property=value") 
                         .hasArgs()
                         .valueSeparator()
                         .desc("Specify port")
                         .required()
                         .build());

         } 


tempOptions = ParseCommand.getOptionsMyAdd();
commandLine = cmdLineParser.parse(tempOptions, ParseCommand.args,true);

, когда я даю команду вроде:

add --my-addr=example1  --my-port=example2

, она принимается, даже если опция my-address урезана.

Как можноизбежать его принятия и разрешить только полную опцию --my-address?

1 Ответ

0 голосов
/ 09 февраля 2019

Это особенность Apache commons-cli, которую нельзя отключить, насколько я вижу.

Это делается на org.apache.commons.cli.Options.java: 287 , и я не вижу способа его отключить.

Таким образом, ваш единственный "вариант" - это, вероятно, запрос функции для commons-cli в https://issues.apache.org/jira/secure/CreateIssue!default.jspa

...