Хотя @ khmarbaise ответ совершенно верен с общей точки зрения, я хотел бы немного его расширить.
Мое автономное приложение командной строки использует args4j, но я думаю,процесс может быть достаточно хорошо скопирован с помощью Commons CLI или (даже более) JCommander , который опирается на те же аннотации командной строки в главном бине.
Итак, чтоЯ сделал это maven mojo, который с помощью самоанализа получает список аргументов командной строки основного компонента.Я ожидаю, что для каждого из этих аргументов свойство будет присутствовать в информации о проекте / настройках.Если это свойство присутствует, я создаю поддельную командную строку, используя опцию и связанную с ней, наконец.
После просмотра всех опций (сохраненных как свойства maven) я могу использовать args4j для заполнения моего компонента, а затем запуститьэтот бин использует свою основную команду.
Я думаю, что этот подход может быть достаточно хорошо обобщен при условии, что ваше приложение имеет набор флагов и метод без аргументов run()
.