在同一目标中使用更新的ant属性

时间:2013-10-11 10:59:02

标签: ant properties target

我的ant项目中有一个build.xml文件,我正在尝试使用属性设置内部版本号。我在名为version.properties的文件中包含以下字段:

build.major.number
build.minor.number
build.revision.number
build.number

我的build.number格式为:

${build.major.number}.${build.minor.number}.${build.revision.number}

我正在更新号码 运行我的“dist”目标时,使用propertyfile operation =“+”进行修订。现在一切都运行得很好,除了构建号始终取自上一个构建版本,例如revision.number = 5,build number = 1.1.4。

我已经使用它来制作2个目标和依赖项来更新version.properties文件,首先更新版本号,然后在下一个目标中更新build.number文件。

似乎在目标中的每个值赋值之后执行operation =“+”,所以我可以通过创建新目标获得更新的值,但它看起来很草率,我希望能够仅在1目标。

如果2-target选项尽可能干净,没有任何JS脚本或任何额外的包,那么好吧,我只需要知道它是否就是这样。

1 个答案:

答案 0 :(得分:0)

原始版本.properties

build.major.number=1
build.minor.number=1
build.revision.number=4
build.number=1.1.4

的build.xml

<project name="ant-propertyfile-task" default="run" basedir=".">
    <target name="run">
        <propertyfile file="version.properties">
            <entry key="build.revision.number" type="int" operation="+" value="1"/>
        </propertyfile>

        <loadproperties srcFile="version.properties"/>

        <property 
            name="new.build.number" 
            value="${build.major.number}.${build.minor.number}.${build.revision.number}"
        />

        <propertyfile file="version.properties">
            <entry key="build.number" value="${new.build.number}"/>
        </propertyfile>
    </target>
</project>

更新了version.properties

build.major.number=1
build.minor.number=1
build.revision.number=5
build.number=1.1.5