Как получить пакет deb из проекта Java gradle, который регистрирует приложение в systemd - PullRequest
0 голосов
/ 20 мая 2018

Как получить пакет deb из проекта Java Gradle, который после установки файла deb автоматически генерирует / etc / systemd / system / project.service и добавляет двоичные файлы в / var/ project / bin / и файлы конфигурации в / etc / project / .
Что-то вроде https://github.com/nebula-plugins/gradle-ospackage-plugin, но с поддержкой systemd.Извините за плохой английский!

1 Ответ

0 голосов
/ 21 мая 2018

Я обнаружил, что могу использовать туманность-плагин , который упоминается в вопросе.
Мне просто нужно добавить эти строки в build.gradle файл:

buildDeb {
  link('/etc/systemd/system/project.service', '/opt/project/bin/project.service')
}

А также создайте файл project.service , как показано ниже, и заставьте плагин переместить файл службы для установки каталога пакета deb:

[Unit]
Description=<description>

[Service]
User=<user>
Group=<group>
EnvironmentFile=-/etc/default/project
ExecStart=/opt/project/bin/project > /var/log/project/project.log
Restart=no

[Install]
WantedBy=multi-user.target

Приведенный ниже кодСкопируйте файл сервиса (если вы поместите его в каталог bin корня проекта) и все другие необходимые файлы для установки каталога файла deb:

ospackage {
  packageName = 'project'

  configurationFile "/opt/project/bin/project.service"

  into '/opt/project'

  from(jar.outputs.files) {
    into 'lib'
  }
  from(configurations.runtime) {
    into 'lib'
  }
  from('build/libs') {
    into 'lib'
  }
  from('conf'){
    into 'conf'
  }
  from('bin') {                      //project.service is in bin directory
    fileType = CONFIG | NOREPLACE    //wont replace any configurationFile in this directory
    into 'bin'
  }
  from('build/scripts') {
    into 'bin'
    exclude 'database'
    fileMode = 0550
  }
}
...