2016-03-01 89 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> 

相反,我要我要使用檢查

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

回答

1

您可以每次指定與該腳本的解釋器全路徑或者使用executable作爲您要運行的可執行文件(本例中爲php),arg爲其arg uments,你可以在一個單一的空格分隔的屬性

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

不能混搭兩個指定命令及其所有參數。請注意,如果basedir包含空格,則command表單將不起作用。如果有任何含有空格的單個參數的機會,那麼就沒有選擇了,你必須使用和的形式必須使用

+0

我不想立即執行腳本,而是想在'.bashrc'中將它保存爲'alias',稍後在多個'target'中使用它,只需指定'$ {checker} '。難道這不能在我的情況下做到嗎? – meridius

+0

@meridius是的,你可以像我在我的例子中展示的那樣,但是你必須對所有的exec調用使用'command'版本,'$ {basedir}'不能包含任何空格。如果你不能保證那麼你必須單獨分開所有參數。 –

+0

謝謝,但我不想定義'',而是我想定義''。 ''只會創建我以後可以在多個''中使用的「鏈接」。 ''會立即執行'command' /'executable',我不想要那個。我希望現在更清楚。 – meridius