W bibliotece CLI Apache Commons, czy można pominąć użycie krótkiej nazwy, zmuszając użytkownika do używania długiej nazwy?Apache Commons CLI: jak zapobiec używaniu krótkich nazw opcji?
zwykle, opcje są zdefiniowane następująco:
new Option("u", "username", true, "automatic user name")
Chciałbym zabraniają korzystania z "u". Ale jeśli zastąpię go null
lub pusty ciąg, są wyjątki ...
Dlaczego ten wymóg? Chciałbym, aby wszystkie moje opcje były tylko w formie --optionName = optionValue, ponieważ niektóre elementy mojej aplikacji to Spring Boot, a Spring Boot rozpoznaje domyślne opcje w tym formacie.
Dodatkowo, dla spójności wśród deweloperów i użytkowników oraz uproszczenie dokumentacji, uważam, że lepiej, jeśli mamy niepowtarzalną drogę do korzystania z opcji zamiast 2.
Dzięki za @centric odpowiedzi, ale może być głupi, nie rozumiem, w jaki sposób zapytanie o obiekt "cmd" w przypadku zerowego argumentu o krótkim argumencie. Wygląda na to, że wszystkie metody w klasie CommandLine wymagają podania nazwy jako parametru ... Czy możesz mi w tym pomóc? Dzięki ! –
Mój kod używa 'cmd.hasOption (" help ")' do sprawdzenia, czy '--help' został podany, czy to też działa dla ciebie? – centic
tak, twój kod działa dobrze i dziękuję ci za to. W rzeczywistości chcę uzyskać wartość opcji. Na przykład wyobraźmy sobie, że pomoc może otrzymać wartość, jeśli zostanie zadeklarowana w ten sposób: nowa opcja (null, "help", false, "some desc"); Jak uzyskać dostęp do wartości podanej w wierszu poleceń, aby "pomóc"? Zakochałem się, jak wszystkie metody API muszą użyć krótkiego argusa do zapytania o wartość ... –