1

ソース管理のために Microsoft Team Foundation Server (TFS) を介してプロジェクトを管理しています。

Worklight プロジェクトで「Build All and Deploy」を実行した後に Ant ビルド スクリプトを実行すると、次のエラーが表示されます。

ビルドファイル: C:\Users\ren04\Documents\Workspaces\MCAMWorkspace\MCAMWorklightPOCJQ\apps\Fourcast\android\native.externalToolBuilders\wlprebuild.xml

走る:

ビルドに失敗しました

C:\Users\ren04\Documents\Workspaces\MCAMWorkspace\MCAMWorklightPOCJQ\apps\Fourcast\android\native.externalToolBuilders\wlprebuild.xml:10: 読み取り専用ファイルの変更日を変更できません C:\Users\ren04\Documents\ Workspaces\MCAMWorkspace\MCAMWorklightPOCJQ\apps\Fourcast\android\native\res\xml\config.xml

合計時間: 342 ミリ秒

以下は、エラーをトリガーする Worklight 生成の wlprebuild.xml Ant スクリプトの内容です。

<project name="wlprebuild" basedir="." default="run">
    <!-- Licensed Materials - Property of IBM
                         5725-G92 (C) Copyright IBM Corp. 2006, 2013. All Rights Reserved.
                         US Government Users Restricted Rights - Use, duplication or
             disclosure restricted by GSA ADP Schedule Contract with IBM Corp. -->

        <!-- This is worklight file that change timestamp of the AndroidManifest.xml when running as android project -->
        <target name="run">
                <touch file="../res/xml/config.xml" verbose="false"/>
    </target>
</project>

Ant が TFS 管理の Android ワークライト プロジェクトの config.xml ファイルに「アクセス」しようとすると、タイムスタンプを変更できないことは明らかです。これは、ファイルが読み取り専用であり、エディターで変更されるまで (その時点でソース コード リポジトリからチェックアウトされ、編集可能になるまで)、読み取り専用として TFS によって管理されるためです。

私の質問は、config.xml ファイルの 'touch' が提供する目的と、それによって引き起こされるエラーに対処する必要があるかどうかです。

4

1 に答える 1

0

はい、ファイルを「タッチ」する必要があります。

メモリが適切である場合、ビルド間のサーバーおよび/またはデバイス間の時間差の場合に Worklight プロジェクトのビルド後にアプリケーションの Web リソースが更新されない可能性があるため、これが行われました。タイムスタンプにより、Web リソースは常に最新の状態になります。

私はこれを自分で試していませんが、おそらく次のいずれかを実行できます。

  1. config.xml ファイルを書き込み可能にしておく
  2. 新しいファイルを作成し、それを wlprebuild.xml でポイントして、'touch' が config.xml ではなく、他のファイルを指すようにします。
于 2013-07-22T15:27:54.733 に答える