0

我有一个local.properties文件,它只包含一个值:

student.id=100

我创建了以下Ant 脚本来增加student.id1值:

 <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>

每次运行命令后,local.properties文件中ant increase-id的值都会增加 1这里没问题。但是,消息总是告诉我为什么?student.id<echo>Student ID: 1

4

1 回答 1

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.xml。

<dirname property="build.dir" file="${ant.file.<projectName>}"/>,

在哪里:

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

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

于 2013-03-18T14:00:28.663 回答