- Команда работает правильно для этого формата:
Код: Выделить всё
./co2-calculator --start Hamburg --end Berlin --transportation-method diesel-car-medium
Код: Выделить всё
Output:
Start city: Hamburg
End city: Berlin
Transportation method: diesel-car-medium
- Но когда я пытаюсь выполнить следующие команды с разными форматами или порядком аргументов, я получаю ошибки:
Код: Выделить всё
./co2-calculator --start "Hamburg" --end "Berlin" --transportation-method=dieselcar-medium
Код: Выделить всё
Error:
Unrecognised option '--transportation-method=dieselcar-medium'
Missing mandatory option --transportation-method, Transportation method.
Код: Выделить всё
@ShellComponent
public class HelloCommand {
@ShellMethod("Calculate CO2 emissions for the trip.")
public String calculateCO2(
@ShellOption(value = "--start", help = "Start city") String start,
@ShellOption(value = "--end", help = "End city") String end,
@ShellOption(value = "--transportation-method", help = "Transportation method") String transportationMethod) {
System.out.println("Start city: " + start);
System.out.println("End city: " + end);
System.out.println("Transportation method: " + transportationMethod);
}
}
Что мне нужно:
Мне нужно реализовать логику, которая может:
обрабатывать любой порядок аргументов.
Принимать как пробел, так и знаки равенства (=) для присвоения значений.
Правильно обрабатывать все три аргумента командной строки независимо от порядка или разделителей. используется.
Вопросы:
- Как я могу заставить приложение Spring Shell обрабатывать такие параметры, как --start "Hamburg" или --start=Hamburg (с пробелами и без них)?
- Какие изменения мне нужно внести в аннотации @ShellOption или любую другую часть логики, чтобы правильно обрабатывать оба варианта? Форматы --transportation-method=dieselcar-medium и --transportation-method Diesel-car-medium?
- Существуют ли какие-либо передовые методы или известные решения для обработки динамических параметров командной строки в Spring Shell, которые я мог упустить из виду?
Подробнее здесь: https://stackoverflow.com/questions/795 ... spring-she
Мобильная версия