Подтвердить что ты не робот

Анализ командной строки: альтернативы CLI Commons?

Для синтаксического анализа командной строки в Java я обычно использую Apache Commons CLI. Может ли кто-нибудь рекомендовать какие-либо альтернативные библиотеки?

4b9b3361

Ответ 1

JCommander звучит как очень простой и интересный подход к анализу аргументов командной строки с аннотациями (от создателя TestNG):

Вы комментируете поля с описаниями своих опций:

import com.beust.jcommander.Parameter;

public class JCommanderTest {
  @Parameter
  public List<String> parameters = Lists.newArrayList();

  @Parameter(names = { "-log", "-verbose" }, description = "Level of verbosity")
  public Integer verbose = 1;

  @Parameter(names = "-groups", description = "Comma-separated list of group names to be run")
  public String groups;

  @Parameter(names = "-debug", description = "Debug mode")
  public boolean debug = false;
}

а затем просто попросите JCommander разобрать:

JCommanderTest jct = new JCommanderTest();
String[] argv = { "-log", "2", "-groups", "unit", "a", "b", "c" };
new JCommander(jct, argv);

Assert.assertEquals(jct.verbose.intValue(), 2);

Ответ 5

В java-source.net вы можете найти по меньшей мере 4 альтернативные библиотеки для CLI Apache Commons.

Ответ 6

getopt-1.0.11 - простая простая в использовании легкая библиотека, которую я использовал один раз для анализа аргументов командной строки

Ответ 7

Я использую и люблю

http://martiansoftware.com/jsap/

его открытый источник, простой. Он неактивен, я думаю, что у автора есть другие утюги в огне.

Ответ 8

Вы можете попробовать commandline (довольно анонимное имя, я знаю)

Он использует аннотации для сопоставления аргументов командной строки в объектной модели. Пара парсинга режимы и набор аннотаций, которые могут быть объединены различными способами, позволяют создавать довольно продвинутые правила командной строки.

Пока он позволяет сопоставлять аргументы командной строки непосредственно на вашей модели домена, вам следует рассмотреть возможность использования отдельных классов для аргументов командной строки.