在 Debian 文件创建任务中创建一个目录

Create a directory in Debian file creation task

我有以下 gradle 任务用于创建 debian 归档文件:

val packDeb by tasks.registering(Deb::class) {
    mkdir("/var/lib/salam/")
}

但是当我 运行 ./gradlew build

时出现以下错误

org.gradle.api.UncheckedIOException: Failed to create directory '/var/lib/salam'

我做错了什么?

您正在使用的 mkdir method 不是 Deb 任务的一部分(而是来自 project 对象)。该方法在 Gradle 项目 配置 时调用,即 Gradle 尝试在 Gradle 启动时创建该目录.这很可能会失败,因为您 运行 Gradle 的用户帐户在 /var/lib.

下没有写权限

要在安装 DEB 包时创建该目录,您可以这样做:

plugins {
  id("nebula.deb") version "6.2.0"
}
import com.netflix.gradle.plugins.deb.Deb

val packDeb by tasks.registering(Deb::class) {
  into("/")
  // TODO assumes that the (non-empty) "salam" dir is prepared in your
  //      project dir
  from("salam") {
    into("var/lib/salam")
  }
}