macos - 如何在ant复制任务中保留exec文件

标签 macos ant file-copying

我已经使用 Ant 为 Mac OS X 创建了 Java FX 包。它创建包含两个文件的包 -
1.我的应用程序
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 文件夹(“Show Package Contents/Contents/MacOS”)没有保存,它的种类在文件文件中发生了变化。

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

谢谢,
尼拉姆·夏尔马

最佳答案

如 Ant 复制任务 guide 中所述:

Unix Note: File permissions are not retained when files are copied; they end up with the default UMASK permissions instead. This is caused by the lack of any means to query or set file permissions in the current Java runtimes. If you need a permission-preserving copy function, use this instead:


<exec executable="cp" ... >

因此,在您的情况下,请替换 <copy>和:
<exec executable="cp">
    <arg line="-R old_folder/bundles my_new_folder"/>
</exec>

(注意你应该使用正斜杠,即使这个 ant 脚本是在 Windows 下使用的)。

关于macos - 如何在ant复制任务中保留exec文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14603625/

相关文章:

Ant 复制任务破坏 UTF-8 符号

c# - 具有多个文件的 CopyFileEx,但只有一个复制对话框

PowerShell:尽管与 Windows 资源管理器使用相同的过程,但复制项目失败

powershell - 从目录结构复制文件但排除命名文件夹

linux - OS X 相当于 SO_BINDTODEVICE

c - 如何使用 clang 在 OS X 上使用 c11 标准库进行编译?

macos - 以编程方式关闭 SwiftUI 中的弹出窗口

java - 在 WsImport 的 Ant 脚本中获取 java.lang.reflect.InvocationTargetException

php - 预处理 PHP 以从构建的文件中删除功能

linux - 根据特定列拆分列