ant copy tag不会保留文件类型

时间:2012-07-15 11:41:59

标签: ant tags copy

我正在尝试自动构建Mac OS X捆绑应用程序。 使用copy标签复制“Unix可执行文件”类文件“/System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/MacOS/JavaApplicationStub”时: <copy file="${stub.file}" todir="${dist.dir}/${ant.project.name}.app/Contents/MacOS"/>并获取一个类型为“文档”的文件,并且该包不会执行。如果我从Finder复制它可以正常工作。

有没有办法复制它并与蚂蚁保持一致?

提前致谢!

1 个答案:

答案 0 :(得分:1)

文件正确复制,但执行权限已丢失,如ant manual中所述:

  

Unix注意:复制文件时不保留文件权限;他们最终使用默认的UMASK权限。这个   是由于缺乏任何查询或设置文件权限的手段造成的   当前的Java运行时。

您必须使用cp命令或稍后使用chmod更改权限:

<apply executable="chmod">
  <arg value="a+rx"/>
  <file file="${stub.file}" basedir="${dist.dir}/${ant.project.name}.app/Contents/MacOS"/>
</apply>