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