在一个ant目标内设置一个属性,并在另一个目标中使用它

时间:2010-12-27 18:23:03

标签: ant

我的构建文件是

<target name="default">  
 <antcall target="child_target"/>  
 <echo> ${prop1}   </echo>  
</target>

<target name="child_target">  
 <property name="prop1" value="val1"/>   
</target>

我收到错误${prop1}尚未设置。如何在目标中设置属性?

2 个答案:

答案 0 :(得分:18)

antcall创建一个新项目。来自Ant文档:

  

被叫目标以新的方式运行   项目;请注意,这意味着   由...设置的属性,引用等   被叫目标不会持久   到调用项目。

使用取而代之:

<project default="default">
  <target name="default" depends="child_target">
    <echo>${prop1}</echo>
  </target>
  <target name="child_target">
    <property name="prop1" value="val1"/>
  </target>
</project>

答案 1 :(得分:3)

我知道旧的,可能已死的问题,但是在目标之外但在项目内部加载的属性文件也可以。 Android使用local.properties这样做:

<?xml version="1.0" encoding="UTF-8"?>
<project name="avia" default="help">

    <!-- The local.properties file is created and updated by the 'android' tool.
         It contains the path to the SDK. It should *NOT* be checked into
         Version Control Systems. -->
    <property file="local.properties" />