out.absolute.dir在linux中意味着什么?

时间:2016-03-18 19:27:23

标签: java linux ubuntu ant

我在Linux中的不同项目的构建文件中经常使用“out.absolute.dir”,我真的好奇它究竟是什么意思。所以我写了一个简短的构建文件,我在下面的行中提到了< / p>

<project name="Test_Ant_APK" default="print">
  <property name="cal.out.dir" location="${out.absolute.dir}"/> 
  <target name="print">
  <echo>p=${cal.out.dir}</echo>
  </target>
</project>

当我从命令行运行这个构建文件时,我得到了这个输出

构建文件:/home/jody/workspace/Test_Ant_APK/build.xml

打印:

 [echo] p=/home/jody/workspace/Test_Ant_APK/${out.absolute.dir}

建立成功

总时间:0秒

我对输出很困惑。我认为我们应该将p = / home / jody / workspace / Test_Ant_APK作为输出。为什么我们有$ {out.absolute.dir} 在输出结束?这是什么意思?这个构建文件有问题吗?

1 个答案:

答案 0 :(得分:2)

您的buildcript没有错。 您使用语法${...}来处理属性值,但是作为 属性out.absolute.dir未设置在您的ant文件的项目范围内,它会被回显为is =&gt; ${out.absolute.dir}这对于未设置的属性是正常的 - 在您的情况下,由于在属性任务中使用了location属性,因此将其添加到您的ant脚本所在的目录中。 使用带有value属性的属性任务时,请查看差异:

<project name="foo">    
  <property name="cal.out.dir" value="${out.absolute.dir}"/> 
  <target name="print">
  <echo>${cal.out.dir}</echo>
  </target>
</project>

输出:

[echo] ${out.absolute.dir}

我认为属性名$[out.absolute.dir}可能会被用于多个脚本中,因为属性位置的属性任务意味着(取自ant手册):

  

将属性设置为给定文件的绝对文件名。如果   该属性的值是绝对路径,保持不变   (将/和\字符转换为当前平台   约定)。否则它被视为相对于的路径   项目的基础和扩展。

有关详细信息,请参阅ant manual property task 如果要回显项目名称属性的值,则必须使用内置属性${ant.project.name},f.e:

<project name="foo">
 <echo>$${ant.project.name} => ${ant.project.name}</echo>   
</project>

查看所有内置属性:

<project>
 <echo>ant builtin properties:</echo>   
 <echoproperties prefix="ant"/>
 <echo>java builtin properties:</echo>
 <echoproperties prefix="java"/>
</project>