Как остановить экранирование аргументов командной строки в плагине maven?
У меня есть плагин, который использует командную строку Plexus для вызова некоторого внешнего процесса и захвата вывода. Один из аргументов представлен в забавном формате с пробелами и кавычками, например --range:"25 августа 2008"-"04 августа 2009". У меня нет возможности изменить требуемый формат аргумента, но Plexus обнаруживает пробелы в аргументе и оборачивает все это в кавычки.
Так
call --range:"25 Aug 2008"-"04 Aug 2009"
становится
call "--range:"25 Aug 2008"-"04 Aug 2009""
и вызов не удается.
Могу ли я заставить сплетение перестать избегать споров?
1 ответ
Объект командной строки использует оболочку для взаимодействия с локальной средой. Вы можете настроить оболочку так, чтобы она переопределяла процесс экранирования по умолчанию, чтобы не экранировать кавычки:
Commandline cl = new Commandline("call");
commandline.getShell().setQuotedArgumentsEnabled(false);
Имейте в виду, что это означает, что ни один из аргументов не будет заключен в кавычки, поэтому используйте его с осторожностью!