#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.