2016-08-20 4 views
2

私はネイティブパッケージャプラグインを使用しているスカラSBTプロジェクトを持っています。私はJavaServerAppPackagingとしてバンドルしており、スタートアップとシャットダウン用のアプリケーションをrc.dスクリプト(Amazon Linux)で自動的に登録するためのスクリプトを生成したいと考えています。私plugins.sbtで :build.sbtで addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "1.2.0-M5") SBTネイティブパッケージャSystemVLoaderがSystemLoaderスクリプトを生成しない

lazy val server = DefProject("some/server", "server") .settings(serverModuleDeps) .settings(ServerSettings.allSettings: _*) .settings(CloudFormation.defaultSettings: _*) .settings(serverLoading in Universal := Option(ServerLoader.SystemV)) .settings(serviceAutostart:=true) .settings(startRunlevels:=Option("3")) .settings(stopRunlevels:=Option("3")) .settings(stackRegion := "US_WEST_2") .settings(codedeployAWSCredentialsProvider := Option(new ProfileCredentialsProvider("devcredentialsprovider"))) .dependsOn(sharedJvm) .dependsOn(langJVM) .enablePlugins(JavaServerAppPackaging, SystemVPlugin) .settings(daemonUser:="ec2-user") .configure(InBrowserTesting.jvm)

私はsbt stageを実行したとき、私はアプリケーションを起動するために、SHとCMDファイルでbinフォルダを含むuniversalフォルダを見ることができます。ただし、アプリケーションをシステムサービスとして登録/開始するコードはありません。プラグインにアプリケーションを登録するためのスクリプトを生成させるために追加の設定が必要ですか?私は何が欠けていますか?

私はこの問題を実証するための基本的なプロジェクトを作成しました:https://github.com/MojoJojo/sbt-native-packager-test

+0

あなたは、 'Debianのを実行する必要がDebianパッケージを作成したい場合。 – kardapoltsev

答えて

1

あなたの設定は正しいです。あなたのsbtコマンドはありません:)

with packageBin(IIRCトリガーuniversal:packageBin)はユニバーサルZIPファイルのみを生成します。システムローダーは、オペレーティングシステム固有の部分です。それがユニバーサルジップに含まれていない理由です。彼らは場所にあるため

debian:packageBin 
rpm:packageBin 

でDebianやRPMファイルを生成し、生成DEBまたはRPMパッケージは、RPM/Debianのベースのシステムがそれを期待し、systemloaderファイルが含まれています。

関連問題:packageBin`コマンド:https://github.com/sbt/sbt-native-packager/issues/869

関連する問題