2

Я пытаюсь упаковать приложение Play Framework с использованием файла RPM, и я не знаю, где разместить конфигурацию, которая требуется в проекте Play Framework.sbt-native-packager ошибки плагина из rpm сборка проекта воспроизведения

Я добавил плагин к моему проекту/plugins.sbt файл

// Comment to get more information during initialization 
logLevel := Level.Warn 

// The Typesafe repository 
resolvers += "Typesafe repository" at "http://repo.typesafe.com/typesafe/releases/" 

resolvers += "tomax repository" at "http://maven.tmx.com/nexus" 

// Use the Play sbt plugin for Play projects 
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.2.1") 

addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "0.6.3") 

Я получаю сообщение об ошибке в игре, когда я запускаю следующую команду:

rpm:package-bin 

Затем я запустить последнюю команду для ошибки, как было предложено, и я получаю

Creating SPEC file: /projects/myproj/target/rpm/SPECS/MyProj.spec 
[debug] Executing rpmbuild with: rpmbuild -bb --buildroot /projects/myproj/target/rpm/buildroot --define _topdir /projects/myproj/target/rpm --target noarch--Linux MyProj.spec 
[error] error: line 4: Empty tag: Summary: 
[info] Building target platforms: noarch--Linux 
[info] Building for target noarch--Linux 
java.lang.RuntimeException: Unable to run rpmbuild, check output for details 
+0

Это похоже на ошибку. Я предлагаю вам поднять проблему с проектом sbt-native-packager на github, после того, как вы сначала проверите, что он еще не был поднят кем-то другим. –

+0

rpm-build печатает свои ошибки: «Empty tag: Summary» означает, что packageSummary отсутствует. – Muki

ответ

4

Один из способов заставить sbt-native-packager работать с игрой - это д.д. следующие с вашими настройками в Build.scala

val storeOpsServer = play.Project(
    "storeops-server", appVersion, appDependencies, path = file("storeops-server") 
).settings(
    //Packaging for RPMs 
    name in Rpm := "my-server", 
    version in Rpm := appVersion, 
    rpmRelease := "0", 
    packageSummary := "Some summary of your software", 
    rpmVendor := "My Corporation", 
    rpmUrl := Some("http://www.mycorp.com"), 
    rpmLicense := Some("MIT"), 
    packageDescription := "Some description of what your server does", 
    rpmGroup := Some("Group") 
).dependsOn(adapterApi) 

Вам не нужны все приведенные выше значения, но это те, которые я использовал, и был успешным.

Вот импорта, которые были в файле

import com.typesafe.sbt.packager.linux.{LinuxPackageMapping, LinuxSymlink} 
import com.typesafe.sbt.packager.rpm.RpmDependencies 
import com.typesafe.sbteclipse.core._ 
import sbt._ 
import Keys._ 
import play.Project._ 

import com.typesafe.sbt.packager.Keys._ 
import com.typesafe.sbt.SbtNativePackager._ 
+0

Отличный ответ! Примечание. Я буду исправлять документы и сообщения об ошибках, чтобы определить, когда вы пытаетесь построить rpm, каковы требуемые значения. – jsuereth

+0

Пожалуйста, включите импорт, необходимый для выполнения этой работы. – colinjwebb

+0

Collin. Я добавил импорт в ответ, спасибо за указание на это. Мне нравится, когда я вижу более полные ответы. К сожалению, наша Build.scala довольно сложная и имеет несколько проектов. Прошу прокомментировать, если вам нужна дополнительная помощь. –