В моем файле сборки ant есть свойство:
<property name="pwd" value="" description="value set external"/>
Это свойство устанавливается через графический интерфейс пользователя.
Позже я хочу вызвать задачу Java и указать значение свойства "pwd" в качестве аргумента для класса Java:
<java classname="package.and.classname" dir="${directory}" fork="yes" failonerror="true">
<arg line="-u ${user}"/>
<arg line="-p ${pwd}"/>
<classpath>
<pathelement path="[...]"/>
</classpath>
</java>
Это работает нормально, пока у пользователя нет пароля, содержащего одну кавычку (') или одну двойную кавычку (").
несбалансированные кавычки в -p pass'word
Ладно - легко обойти это:
<arg line="-p "${pwd}""/>
Но следующий случай - это слово pwd = pass ". Ошибка тогда:
"The syntax of the command is incorrect."
И что произойдет, когда оба ('и ") будут использованы?
Я пытался избежать кавычек с "
и / или '
, но в конце концов ничего не изменилось в поведении.
Даже если я обменяю <arg line>
на <arg value>
для каждого параметра, проблема все еще сохраняется (но на самом деле теперь только для двойной кавычки или в смешанном регистре).
Например:
<arg value="-u"/>
<arg value="${user}"/>
<arg value="-p"/>
<arg value="${pwd}"/>
может работать с pwd=pass'word
, но не с pwd=pass"word
или pwd=pass"word
.
Есть ли способ сообщить муравью, что значение pwd
не должно оцениваться?