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

标签 gradle deb gradle-kotlin-dsl

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

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文件创建任务中创建目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56194149/

相关文章:

gradle - 如何集中Gradlebuild设置?

java - 如何在本地运行多模块appengine项目(使用gradle)

gradle - 如何在使用 Gradle 构建 fat jar 时编译不同的口味

gradle - 同名类别字段的Gradle(Groovy?)语法

linux - 我如何将 postinst 脚本与 fakeroot deb 包生成器一起使用

ant - 使用 gradle-script-kotlin 中的 ant 任务

gradle - Gradle 。检测依赖问题

linux - 如何在 Linux 上实现自动更新 Electron 应用程序?

ubuntu - 下载特定的ubuntu包文件

kotlin - 在 Kotlin DSL Gradle 上包含/排除标签 Junit5 的正确方法是什么