【问题标题】:Using an updated ant property in the same target在同一目标中使用更新的 ant 属性
【发布时间】:2013-10-11 10:59:02
【问题描述】:

我的 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 脚本或任何额外包的情况下尽可能干净,那么好吧,我只需要知道它是否是这样的。

【问题讨论】:

    标签: ant properties target


    【解决方案1】:

    原始版本.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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-08
      • 1970-01-01
      相关资源
      最近更新 更多