3

我只是好奇是否有一些不错的方法可以使用 Akka 包装来做到这一点。

我在这里找到了一些示例,但它是为rpm构建而创建的,我在我的中使用这两个插件build.sbt

.enablePlugins(AkkaAppPackaging)
  .enablePlugins(UniversalPlugin)

实际上,我通过手动将 sigar 库复制到生成应用程序启动脚本的目录找到了一种解决方法。

还需要设置-Djava.library.path=./sigar到 sigar 库所在的适当目录,这可以build.sbt在生成的脚本中设置或稍后手动更改,方法是更改JAVA_OPTS​​ .

4

1 回答 1

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"
  )
于 2015-03-04T22:11:11.517 回答