gpt4 book ai didi

scala - 如何声明对 native .so 库的依赖以进行测试?

转载 作者:行者123 更新时间:2023-12-01 11:38:41 26 4
gpt4 key购买 nike

我在 Akka 中有一个生产应用程序,我从以下选项开始:

-Djava.library.path="./native/"

(native 目录包含库 libsigar-amd64-linux.so),一切正常。

当我输入 sbt test 时,我遇到了以下错误:

[executorTest-akka.actor.default-dispatcher-13] DEBUG Sigar  - no libsigar-amd64-linux.so in java.library.path
org.hyperic.sigar.SigarException: no libsigar-amd64-linux.so in java.library.path

我尝试修改 build.sbt :

libraryDependencies in Test ++= file("native/libsigar-amd64-linux.so")

但这并没有帮助。

最佳答案

JVM 只会从 java.library.path 加载库。 libraryDependencies 用于声明托管依赖项(例如 jars)。

> help libraryDependencies
Declares managed dependencies.

您需要为测试指定上述java.library.path。你有两个选择。

您可以在 fork 的 JVM 中运行测试,将以下行添加到您的 build.sbt

javaOptions in Test += s"""-Djava.library.path=${baseDirectory.value / ".native"}"""

fork in Test := true

其次,您可以运行 sbt 使用(请注意,这将覆盖整个过程的 java.library.path),如果您没有 fork 测试,它将在测试中可见

sbt -Djava.library.path=./native

关于scala - 如何声明对 native .so 库的依赖以进行测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24385458/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com