0

ビルドスクリプトが変数を設定しようとする前に、「Application.revision」プロパティを application.properties ファイルから「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 に答える