0

我的 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="+" 更新修订号。现在一切正常,除了内部版本号总是取自之前的版本,例如修订号 = 5,内部版本号 = 1.1.4。

我已经让它与更新 version.properties 文件的 2 个目标和依赖项一起工作,首先更新修订号,然后在下一个目标中更新 build.number 文件。

似乎 operation="+" 在目标中的每个值分配之后执行,因此我可以通过创建新目标来获取更新的值,但它看起来很草率,我希望能够只在 1 个目标中执行此操作。

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

4

1 回答 1

0

原始版本.properties

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

构建.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
于 2013-10-11T14:54:02.420 回答