在Apache Commons CLI lib中,是否可以绕过短名称的使用,从而迫使用户使用长名称?
通常,选项定义如下:
new Option("u", "username", true, "automatic user name")
我想禁止使用"你".但是,如果我用null
空字符串替换它,有例外...
为什么这个要求?我希望我的所有选项只能以--optionName = optionValue的形式出现,因为我的应用程序的某些部分是Spring Boot,而Spring Boot默认选择此格式的选项.
此外,为了保持开发人员和用户之间的一致性并简化文档,我发现如果我们有一种使用选项而不是2的独特方式会更好.
null
当使用最新版本的Apache Commons Cli 1.3.1和DefaultParser
(这是现在唯一没有弃用的)时,以短名称传递对我有用:
Options options = new Options(); Option option = new Option(null, "help", true, "some desc"); options.addOption(option); CommandLineParser parser = new DefaultParser(); CommandLine cmd = parser.parse( options, new String[] {"--help=foobar"}); // automatically generate the help statement HelpFormatter formatter = new HelpFormatter(); formatter.printHelp( "ant", options ); assertEquals(cmd.hasOption("help"), true); String optionValue = cmd.getOptionValue("help"); assertEquals("foobar", optionValue);