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

时间:2019-05-17 22:10:27

标签: gradle deb gradle-kotlin-dsl

我有以下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'

我在这里做什么错了?

1 个答案:

答案 0 :(得分:1)

您使用的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")
  }
}
相关问题