我很好奇是否有一些很好的方法可以用Akka包装做到这一点。
我找到了一些示例here,但它是为rpm
版本创建的,我在build.sbt
中使用这两个插件:
.enablePlugins(AkkaAppPackaging)
.enablePlugins(UniversalPlugin)
实际上,我通过手动将sigar库复制到生成应用程序启动脚本的目录来找出一种解决方法。
还需要将-Djava.library.path=./sigar
设置为sigar库所在的适当目录,这可以在build.sbt
中设置,也可以稍后在生成的脚本中手动更改,方法是更改JAVA_OPTS
。
答案 0 :(得分:2)
这就是我做的事情
lazy val sigarJavaOpts = "-Djava.library.path=./sigar"
libraryDependencies ++= Dependencies.sigar
mappings in Universal ++= MappingsHelper directory getClass.getClassLoader.getResource("sigar").getFile
bashScriptExtraDefines += s"""addJava "$sigarJavaOpts" """
javaOptions in run += sigarJavaOpts
请注意,我将sigar文件放在我的资源文件夹中。您可能还需要从以下
导入import com.typesafe.sbt.SbtNativePackager.Universal
import com.typesafe.sbt.packager.MappingsHelper
import com.typesafe.sbt.packager.Keys.bashScriptExtraDefines
我也有一个Dependencies对象,我有
val sigar = Seq(
"org.fusesource" % "sigar" % "1.6.4"
)