2016-03-01 2 views
0

Почему я не могу установить свойство, подобное этому в Apache Ant?Значение свойства Apache Ant с интерпертером

<property name="checker" value="php ${basedir}/vendor/code-checker/src/cc.php" /> 

А потом EXEC его как этот

<exec executable="${checker}"> 
    <arg value="-d" /> 
    <arg path="${basedir}/src" /> 
</exec> 

Вместо этого я должен указать полный путь с переводчиком, что скрипты каждый раз, когда я хочу использовать что Checker

<exec executable="php"> 
    <arg value="vendor/code-checker/src/cc.php" /> 
    <arg value="-d" /> 
    <arg path="${basedir}/src" /> 
</exec> 

ответ

1

Вы можете либо используйте executable для исполняемого файла, который вы хотите запустить (php в этом случае) и arg за его аргумент NTS, или вы можете указать команду и все его аргументы в одном пространстве, разделенных атрибутом

<exec command="${checker} -d ${basedir}/src"/> 

Вы не можете смешивать и сочетать два. Обратите внимание, что форма command не будет работать, если в basedir есть пробелы. Если есть какие-либо шансы на индивидуальный аргумент, содержащий пробелы, тогда выбора нет, вы должны должны использовать форму и arg.

+0

Я не хочу запускать скрипт сразу, вместо этого я хочу сохранить его как 'alias' в' .bashrc' и использовать его позже в нескольких 'target' просто, указав '$ {checker} '. Разве это не могло быть сделано в моем случае? – meridius

+0

@meridius да, вы можете, как я показал в моем примере, но вы должны использовать версию 'command' для всех ваших вызовов exec, а' $ {basedir} 'не должны содержать пробелов. Если вы не можете гарантировать, что тогда вам придется разделить все аргументы индивидуально. –

+0

Спасибо, но я не хочу определять '', вместо этого хочу определить' '. '' просто создаст ссылку, которую я позже смогу использовать в нескольких ''е. '' немедленно выполнит 'command' /' executable', и я не хочу этого. Надеюсь, теперь это становится яснее. – meridius

Смежные вопросы