Ant <property> task:'value'和'location'之间有区别吗?</property>

时间:2015-02-02 16:23:24

标签: java ant

设置property以引用文件路径时,使用valuelocation参数之间有区别吗?

https://ant.apache.org/manual/Tasks/property.html处的文档指出:

value设置属性的值

location将属性设置为给定文件的绝对文件名。

一般值是value,文件路径是location吗?


在现实生活中的例子中,这两行代码之间有区别吗?如果是这样,它有什么实际影响?

    <property name="cobertura.dir" value="C:/Cobertura/cobertura-1.9" />
    <property name="cobertura.dir" location="C:/Cobertura/cobertura-1.9" />

2 个答案:

答案 0 :(得分:2)

在您已提及的ANT手册中有记录......

location : Sets the property to the absolute filename of the given file. 
If the value of this attribute is an absolute path, it is left unchanged (with / and \ characters converted to the current platforms conventions). 
Otherwise it is taken as a path relative to the project's basedir and expanded.

因此您可以选择指定绝对/相对路径。

因此,如果您想要执行相对路径,则使用位置。如果您正在执行绝对路径

,则可以使用位置或值(互斥)

答案 1 :(得分:2)

如果它可以帮助其他人:

http://www.javapractices.com/topic/TopicAction.do?Id=135,作者建议:

  

对于代表文件或目录的属性,请使用&#39; location&#39;   属性,而不是&#39;值&#39;

     

.properties文件等同于使用<property name='x' value='y'>   因为&#39;位置&#39;属性未被使用。不建议这样做   文件和目录,因为这不会解析相对   引用。如果确实在属性文件中指定了位置,那么它   应该是绝对的,而不是相对的。另外,你需要逃脱   反斜杠。