giv*_*nse 11 ant file-permissions tar
当然可以使用exec task,但我的问题是:
是否可以使用tar任务执行此操作?
Ric*_*ler 14
根据复制任务的说明,我认为没有办法保留现有权限:
Unix注意:复制文件时不保留文件权限; 他们最终使用默认的UMASK权限.这是由于缺乏在当前Java运行时中查询或设置文件权限的任何方法.如果您需要保留权限的复制功能,请
<exec executable="cp" ... >改用.
但是tar任务可以采用一个或多个tarfileset元素.在tarfileset可以与被定义filemode和/或dirmode属性来指定UNIX权限.如果指定多个包含仅匹配这些文件以获取每组所需权限,则该组中的文件将包含在这些权限中.
nev*_*ves 13
这种缺乏权限使得ant tar任务对我来说几乎无用.如果不使用exec任务执行操作系统tar,则无法执行此操作:
<exec executable="tar" output="/dev/null" os="Linux">
<arg value="--exclude-from=files_to_exclude.txt"/>
<arg value="-cvz"/>
<arg value="--file=${file.tar}"/>
<arg value="."/>
</exec>
Run Code Online (Sandbox Code Playgroud)
几乎所有人都知道的操作系统都有gnu tar二进制文件.将其中一个放入您的版本控制系统中,并根据您的操作系统使用它.是的,Ant每次运行时都需要分叉一个进程.
使用tarfileset为我们的项目工作.这是一个工作示例,以防有人需要它:
<tar destfile="${dist}/${module.name}-${version}.tar">
<tarfileset dir="${package.dir}" filemode="550" includesfile="${home.dir}/includelist.txt">
<include name="*.sh"/>
</tarfileset>
</tar>
Run Code Online (Sandbox Code Playgroud)
在此示例中,includelist.txt用于指示要包含在tar文件中的文件.具有*.sh扩展名的所有文件将具有用户和组的读取和执行权限(550).
希望这有助于某人.
| 归档时间: |
|
| 查看次数: |
13569 次 |
| 最近记录: |