0

在我的 buildscript 尝试设置变量之前,我试图将 application.properties 文件中的“Application.revision”属性读入名为“svna.version”的变量中。在我的某些系统上,我没有 svn 客户端,因此 svnversion 失败并且它变为空白。我希望它是最后一个已知值,而不是失败。

如何设置 svna.version?我正在尝试做这样的事情

    <propertyfile file="src/CASUAL/resources/CASUALApp.properties"/>
    <property name="svna.version" value="${Application.revision}"/>

我只需要知道如何将属性读入 Ant 变量。在上面的示例中,该值不是从属性文件中读取的。它被读取为文字字符串。

根据要求,我正在添加属性文件的内容:

Application.name=CASUAL
Application.title=CASUAL R
Application.version=${Application.revision}.${Application.buildnumber}
Application.vendor=AdamOutler
Application.homepage=xda-developers.com
Application.description=CASUAL Cross-platform ADB Scripting Universal Android Loader
Application.vendorId=AdamOutler
Application.id=${Application.name}
Application.lookAndFeel=system
Application.buildnumber=2,888
Application.revision=254

我需要将 Application.revision 读入属性“svna.version”,但它读取为文字字符串而不是键值对。

4

2 回答 2

2

好的 - 刚刚发现它。您需要使用<loadproperties/><property file="foo.properties"/>您正在使用的任务是编写属性文件而不是加载它们。

在此处或确实在此处加载属性

在这里写属性

在这里使用 -d 和 -v 运行 ant 非常有帮助。

于 2013-02-03T15:30:36.373 回答
0

我只是想添加这个完成的代码示例,它尝试从命令加载 svnversion,如果失败,它会从存储的变量加载。

   <target name="-pre-init" description="Sets the buildversion for the current build">
        <exec outputproperty="svna.version" executable="svnversion" failifexecutionfails="false" >
            <arg value="-c" />
            <redirector>
                <outputfilterchain>
                    <tokenfilter>
                        <replaceregex pattern="^[0-9]*:?" replace="" flags="g"/>
                        <replaceregex pattern="M" replace="" flags="g"/>
                    </tokenfilter>
                </outputfilterchain>
            </redirector>
        </exec> 
        <echo>revision after svnversion command: ${svna.version}</echo>

        <loadproperties srcfile="src/CASUAL/resources/CASUALApp.properties"/>
        <property name="svna.version" value="${Application.revision}"/>
        <echo>Loaded property value: ${svna.version}</echo>
        <echo>revision after loaded property: ${svna.version}</echo>
于 2013-02-03T18:00:41.090 回答