Аргументы командной строки Apache Ant без двойных кавычек - это возможно? - PullRequest
0 голосов
/ 21 октября 2009

Сегодня мне нужно было добавить задачу в файл Apache Ant. Командная строка должна была выглядеть примерно так:

myprogram --param1 --param2 path\somefile 2> path\logfile

Проблема с этим заключалась в том, что, если бы я использовал что-то вроде следующего для этого

<exec executable="$(myprogram)"
  <arg value="--param1">
  <arg value="--param2">
  <arg path="$(somefile)">
  <arg value="2>">
  <arg path="$(logfile)">
</exec>

все аргументы были заключены в кавычки, поэтому команда выглядела так:

myprogram "--param1" "--param2" "path\somefile" "2>" "path\logfile"

, что неплохо и особенно хорошо, если у вас есть пробелы в ваших файлах / пути, но уничтожает канал к лог-файлу (вместо этого программа думает, что есть два дополнительных файловых аргумента "2>" и "путь \ лог-файл") .

Я обошел это, вызвав вместо этого пакетный скрипт, который хочет только файлы в качестве параметров, но я удивился: возможно ли это сделать без такого обходного пути?

Ответы [ 4 ]

2 голосов
/ 21 октября 2009

Когда вы запускаете «myprogram --param1 --param2 path \ somefile 2> path \ logfile», аргументы вашей программы заканчиваются на «2>». Перенаправление файлов - это операция вашей оболочки, которая не используется изнутри муравья. Если вы посмотрите документы для задания ant exec , вы увидите, что оно поддерживает перенаправление через атрибут output .

2 голосов
/ 21 октября 2009

Вы пробовали <arg line="..." />?

1 голос
/ 29 апреля 2011

У меня была такая же проблема, как у стартера темы. В командной строке выполнения java мне нужно было добавлять исходные файлы как отдельные аргументы, а не как один аргумент с кавычками вокруг них. Я использовал тег <arg value="..." />, но использование <arg line="..." />, как предлагал nullptr, решило мою проблему.

1 голос
/ 21 октября 2009

Задача ant exec имеет выходной параметр, в котором вы можете указать файл журнала, не требуя конвейера командной строки, в сочетании с параметром append для определения необходимости перезаписи или добавления выходного файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...