回显消息没有显示属性文件中的正确值

  • 本文关键字:文件 属性 消息 显示 ant
  • 更新时间 :
  • 英文 :


我有一个本地。属性文件,它只包含一个值:

student.id=100

我创建了下面的Ant脚本来增加student.id的值1:

 <target name="increase-id">
    <!-- student.id is increased by 1, no problem -->
    <propertyfile file="local.properties">
         <entry key="student.id" type="int" operation="+" value="1" />
     </propertyfile>
     <!--The following echo always show me "Student ID: 1, why?"-->
     <echo message="Student ID: ${student.id}"/>
 </target>

每次执行ant increase-id命令后,local中student.id的值都会被刷新。属性文件增加1这里没问题。但是,<echo>消息总是显示Student ID: 1为什么?

这个适合我:

<project name="increase.test" default="increase-id">
    <target name="increase-id">
        <!-- documentation says that this task is for editing property files -->
        <propertyfile file="local.properties">
            <entry key="student.id" type="int" operation="+" value="1" />
        </propertyfile>
        <!-- so you should load this property after edit -->    
        <property file="local.properties" />
        <echo message="Student ID: ${student.id}"/>
    </target>
</project>
顺便说一下,不要使用相对路径。不要这样,总是使用绝对路径。如果你想加载与build.xml在同一目录下的属性文件,你可以使用<dirname/> task.
<dirname property="build.dir" file="${ant.file.<projectName>}"/>,

地点:

  1. ${ant.file}是内置属性,指示当前正在运行的build.xml
  2. <projectName>只是项目名称

    尝试总是使用${ant.file.<projectName>模式创建dirname,因为如果您只使用${ant.file},它将指示主构建。例如,如果您有一个运行其他构建的构建,并且在其他构建中您将使用${ant.file},它将指示主构建。如果不清楚,请阅读Apache ant文档并尝试创建简单的构建。

相关内容

  • 没有找到相关文章