繁体   English   中英

如何在sbt-native-packager Akka构建中包含sigar本机库?

[英]How to include sigar native libraries in sbt-native-packager Akka build?

我很好奇是否有一些很好的方法与Akka包装做到这一点。

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

.enablePlugins(AkkaAppPackaging)
  .enablePlugins(UniversalPlugin)

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

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

这就是我做的

  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"
  )

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM