Почему debian:package-bin выдает «Описание пакета в Debian не может быть пустым» при сборке.у sbt есть настройка?

#scala #sbt #sbt-native-packager

#scala #sbt #sbt-native-packager

Вопрос:

Я хочу создать пакет Debian с моим кодом, написанным на Scala, с sbt и sbt-native-package.

Но когда я пытаюсь выполнить debian:package-bin в консоли sbt, я получаю эту ошибку:

 [trace] Stack trace suppressed: run last debian:debianControlFile for the full output.
[error] (debian:debianControlFile) packageDescription in Debian cannot be empty. Use
[error]                  packageDescription in Debian := "My package Description"
 

Это странно, потому что в моем build.sbt у меня есть packageDescription настройка следующим образом:

 import com.typesafe.sbt.SbtNativePackager._
import com.typesafe.sbt.packager.Keys._
import NativePackagerKeys._
import com.typesafe.sbt.packager.archetypes.ServerLoader.{SystemV, Upstart}

serverLoading in Debian := SystemV

name := "testApp"

version := "1.0"

organization := "com.testApp"

scalaVersion := "2.10.3"

maintainer in Debian := "gdc <aaa@aaa.com>"

packageSummary in Debian := "testApp"

packageDescription in Debian := "testApp"

packageArchetype.java_server

exportJars := true
 

Я проводил тесты с использованием packageDescription := "testApp" or packageDescription in Linux := "testApp" , но ни один из них не работал.

Комментарии:

1. Не могли бы вы выполнить sbt 'show debian:packageDescription' из командной строки или просто выполнить sbt show debian:packageDescription , а затем вставить вывод в вопрос? Я сомневаюсь build.sbt , что приведенный выше файл является частью вашего определения сборки.

2. Спасибо, Яцек, проблема заключалась в том, что packageArchetype.java_server перезаписывает мои данные. После с show debian:packageDescription возвращает empty и теперь возвращает правильное значение

Ответ №1:

Переместите строку

 packageArchetype.java_server
 

быть сразу после импорта, поэтому он не будет переопределять настройки.

build.sbt

 import com.typesafe.sbt.SbtNativePackager._
import com.typesafe.sbt.packager.Keys._
import NativePackagerKeys._
import com.typesafe.sbt.packager.archetypes.ServerLoader.{SystemV, Upstart}

packageArchetype.java_server

serverLoading in Debian := SystemV

name := "testApp"

version := "1.0"

organization := "com.testApp"

scalaVersion := "2.10.3"

maintainer in Debian := "gdc <aaa@aaa.com>"

packageSummary in Debian := "testApp"

packageDescription in Debian := "testApp"

exportJars := true
 

Комментарии:

1. Спасибо, @lpiepiora, это была ошибка

2. Для тех, кто все еще испытывает трудности, при использовании интерактивного режима в sbt или activator вы должны reload указывать определение проекта при каждом изменении build.sbt.