如何在ant copy任务中保留exec文件

时间:2013-01-30 12:07:00

标签: macos ant file-copying

我使用Ant为Mac OS X创建了Java FX软件包。它用两个文件创建包 - 1. MyApplication.app 2. MyApplication.dmg

我希望将这两个文件复制到其他文件夹中,所以我在build.xml中编写了命令 -

<copy todir="my_new_folder">
   <fileset dir="old_folder\bundles"/>
</copy>

在“my_new_folder”处成功复制这两个文件。但是从“my_new_folder”运行.app并没有启动我的应用程序虽然它正在从“old_folder”正确启动。

在比较复制的应用程序时,我发现exec(Unix可执行文件)位于 MacOS 文件夹(“显示包内容/内容/ MacOS”)不保留,其类型在文档文件中发生了变化。

如何将其类型保存到 Unix可执行文件,因为我只是执行简单的复制目录。

谢谢, Neelam Sharma

1 个答案:

答案 0 :(得分:8)

ant copy任务 guide中所述:

  

Unix注意:复制文件时不保留文件权限;他们最终使用默认的UMASK权限。这是由于缺乏在当前Java运行时中查询或设置文件权限的任何方法。如果您需要保留权限的复制功能,请改用:

<exec executable="cp" ... >

因此,在您的情况下,请将<copy>替换为:

<exec executable="cp">
    <arg line="-R old_folder/bundles my_new_folder"/>
</exec>

(请注意,即使在Windows下使用此ant脚本,也应该使用正斜杠。)