Как остановить экранирование аргументов командной строки в плагине maven? - PullRequest
1 голос
/ 10 августа 2009

У меня есть плагин, который использует командную строку Plexus для вызова некоторого внешнего процесса и захвата вывода. Один из аргументов представлен в забавном формате с пробелами и кавычками, например, --range: «25 августа 2008» - «04 августа 2009». У меня нет возможности изменить требуемый формат аргумента, но Plexus обнаруживает пробелы в аргументе и заключает все это в кавычки.

Так

call --range:"25 Aug 2008"-"04 Aug 2009"

становится

call "--range:"25 Aug 2008"-"04 Aug 2009""

и вызов не удался.

Можно ли заставить сплетение перестать избегать аргументов?

1 Ответ

1 голос
/ 10 августа 2009

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

Commandline cl = new Commandline("call");
commandline.getShell().setQuotedArgumentsEnabled(false);

Имейте в виду, что это означает, что none аргументов будет заключено в кавычки, поэтому используйте его с осторожностью!

...