在 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")
}
}
我有以下 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")
}
}