I need to copy a group of files with ant. Unfortunately I can't use the target "copy" because it loses the Linux file permissions. So must use the target "execute" "cp" . How can I pass a group of file to the execute cp target? I know that I have to use a fileset but in which manner I can pass a fileset as argument of the execute cp target?

有帮助吗?

解决方案

You can't pass filesets to operating system commands. The best you can do is use the apply task to invoke the "cp" command on each file as follows:

  <apply executable="cp">
     <srcfile/>
     <targetfile/>
     <fileset dir="src" includes="*.txt"/>
     <globmapper from="*.txt" to="output/*.txt"/>
  </apply>

But, I don't really understand why you couldn't combine the copy task with chmod, it would be most efficient:

<copy todir="output">
  <fileset dir="src" includes="*.txt"/>
</copy>

<chmod perm="700">
  <fileset dir="output" includes="*.txt"/>
</chmod>
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top