Создать каталог в задаче создания файла Debian - PullRequest
1 голос
/ 18 мая 2019

У меня есть следующая задача 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 Ответ

1 голос
/ 19 мая 2019

Используемый вами mkdir метод не является частью задачи 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")
  }
}
...