SetPermissions

自 Ant 1.10.0 起.

描述

使用 Java 的 NIO 权限支持更改文件权限。

此任务以平台无关的方式提供 chmodattrib 的平台特定功能的子集。

如果未通过 mode 或 permissions 属性指定任何权限,则将从嵌套资源中删除所有权限。

该任务接受任意资源作为嵌套资源集合的一部分,但并非所有资源都支持设置权限。此任务不会对不支持设置权限的资源执行任何操作,例如 URL。

权限将应用于嵌套资源集合中包含的所有资源。如果要对两种类型的资源应用不同的权限集,则可能需要确保集合仅返回文件或目录。

参数

属性 描述 必需
permissions 要设置的权限,以逗号分隔的 PosixFilePermission 值名称列表形式。
mode 要设置的权限,以传统的 Unix 三位八进制数形式。
nonPosixMode 如果由于文件系统不支持 POSIX 文件权限而无法更改文件的权限,该怎么办。可能的选项包括 fail(构建失败)、pass(只记录错误)、tryDosOrFail(至少尝试在 DOS 文件系统上设置只读标志,如果也不可能则失败)和 tryDosOrPass(至少尝试在 DOS 文件系统上设置只读标志,如果也不可能则只记录错误)。 否;默认为 fail
failonerror 如果设置权限失败,是否停止构建。 否;默认为 true

作为嵌套元素指定的参数

任何资源集合

资源集合 用于选择资源组。

示例

使 start.sh 文件对任何人可读可执行,并使所有者可写。

<setpermissions mode="755">
  <file file="${dist}/start.sh"/>
</setpermissions>

使 start.sh 文件对任何人可读可执行,并使所有者可写。

<setpermissions permissions="OWNER_READ,OWNER_WRITE,OWNER_EXECUTE,OTHERS_READ,OTHERS_EXECUTE,GROUP_READ,GROUP_EXECUTE">
  <file file="${dist}/start.sh"/>
</setpermissions>