Отключение анализа аргумента Spring Boot - PullRequest
0 голосов
/ 20 октября 2018

Я хотел бы полностью отключить разбор аргументов SpringBoot.Есть ли способ сделать это?

Почему?

Использование моего инструмента выглядит примерно так: $ mytool --some-option=value -- --some-other-option=value arg1 arg2

Обратите внимание на --.

По соглашению (см. рекомендацию 10 ) это используется в качестве разделителя между опциями и операндами.

В настоящее время Boot's DefaultArgument видит это как аргумент с недопустимым именеми ошибки.

Я открыл проблему Spring Boot для обработки -- в соответствии с соглашением.Но пока я бы хотел полностью отключить разбор аргументов, поскольку я все равно его не использую.

Я не думаю, это возможно в 2.0.x, но яХотелось бы подтвердить с кем-то более знакомым.Возможно, получите представление о том, как обойти это.

Пример трассировки

java.lang.IllegalArgumentException: Invalid argument syntax: -- at org.springframework.core.env.SimpleCommandLineArgsParser.parse(SimpleCommandLineArgsParser.java:75) at org.springframework.core.env.SimpleCommandLinePropertySource.<init>(SimpleCommandLinePropertySource.java:90) at org.springframework.boot.DefaultApplicationArguments$Source.<init>(DefaultApplicationArguments.java:76) at org.springframework.boot.DefaultApplicationArguments.<init>(DefaultApplicationArguments.java:42) at org.springframework.boot.SpringApplication.run(SpringApplication.java:321) at com.mypackage.genie.MyApplication.run(MyApplication.java:63) (...)

1 Ответ

0 голосов
/ 20 октября 2018

Если вы не хотите, чтобы Spring Boot анализировал аргументы, вы можете изменить основной метод, чтобы они не передавались в SpringApplication.run().После этого вы можете самостоятельно обрабатывать аргументы в методе main до или после запуска приложения.

...