1

我们通过 Microsoft Team Foundation Server (TFS) 管理我们的项目以进行源代码控制。

在对 Worklight 项目执行“全部构建并部署”后执行 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\工作区\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 worklight 项目中的 config.xml 文件时,它无法修改时间戳。这是因为该文件是只读的并且由 TFS 管理为只读,直到它在编辑器中被修改(此时它从源代码存储库中签出并变为可编辑)。

我的问题是 config.xml 文件的“触摸”有什么用途,它导致的错误是否是我们需要解决的问题?

4

1 回答 1

0

'触摸'文件是必需的,是的。

如果我没记错的话,这样做是因为在构建 Worklight 项目之后,如果服务器和/或设备之间存在时间差异,应用程序中的 Web 资源可能不会得到更新。由于时间戳,Web 资源现在始终是最新的。

我自己没有尝试过,但也许你可以:

  1. 保持 config.xml 文件可写
  2. 创建一个新文件并在 wlprebuild.xml 中指向它,这样“触摸”就不会出现在 config.xml 中,而是指向另一个文件
于 2013-07-22T15:27:54.733 回答