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="+" でリビジョンの番号を更新しています。これで、ビルド番号が常に以前のビルドから取得されることを除いて、すべてが正常に機能しています (revision.number = 5、build number = 1.1.4)。

最初にリビジョン番号を更新し、次に次のターゲットで build.number ファイルを更新して、version.properties ファイルを更新するための 2 つのターゲットと依存関係を作成することで動作するようになりました。

ターゲットに値を代入するたびに operation="+" が実行されるように見えるので、新しいターゲットを作成して更新された値を取得できますが、ずさんなようで、1 つのターゲットだけで実行できるようにしたいと考えています。

2 ターゲット オプションが、JS スクリプトや追加のパッケージなしで取得できるほどクリーンである場合は、問題ありません。それがそのようなものであるかどうかを知る必要があります。

4

1 に答える 1

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
于 2013-10-11T14:54:02.420 に答える