Я хочу задачу муравья, которая включает переданные аргументы командной строки.Аргументы командной строки могут различаться по количеству. В частности, для задачи внутри ant.
Я хотел бы сделать это в командной строке:
$ ant run foo bar ...
В идеале"foo" и "bar" и другие аргументы "..." будут передаваться в качестве завершающих аргументов экземпляру java, созданному в задаче .Java будет видеть:
$ java -classpath ./output Foobar foo bar ...
Другими словами, я хотел бы, чтобы та же самая задача муравья выполняла следующее:
$ ant run foo
# executes "java -classpath ./output Foobar foo"
$ ant run foo bar
# executes "java -classpath ./output Foobar foo bar"
$ ant run foo bar baz
# executes "java -classpath ./output Foobar foo bar baz"
Я предполагал, что это может выглядеть примерно так:
<project name="Foobar" basedir=".">
<property name="build" location="output"/>
<target name="run" >
<java failonerror="true" classname="Foobar" fork="true">
<classpath>
<dirset dir="${build}" />
</classpath>
<arg line="$@"/>
</java>
</target>
</project>
Обратите внимание на строку
<arg line="$@"/>
Я представлял, что что-то вроде выше передаст все оставшиеся аргументы экземпляру Java.(Цель этого вопроса - найти этот конкретный механизм муравья).
Методы, которые я видел для этого , требуют предварительно настроенные переменные ant .То есть
$ ant run -DARG1="foo" -DARG2="bar" ...
Но этот метод исключает список аргументов переменной длины.
Кто-нибудь знает метод для переменного числа аргументов, который может быть передан муравью задача (желательно не требует написания сложного набора правил муравья)?