如何声明对本机.so库的依赖关系以进行测试?

编程入门 行业动态 更新时间:2024-10-25 20:19:30
本文介绍了如何声明对本机.so库的依赖关系以进行测试?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

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

I have a production application in Akka that I start with the following option:

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

(其中 native 目录包含库 libsigar-amd64-linux.so ),一切都很好。

(with native directory containing a library libsigar-amd64-linux.so) and everything is fine.

当我键入 sbt测试我遇到以下错误:

When I type sbt test I'm facing the following error:

[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 用于声明托管依赖项(例如jar)。

JVM will only load libraries from the java.library.path. The libraryDependencies is for declaring managed dependencies (as e.g. jars).

> help libraryDependencies Declares managed dependencies.

您需要指定前面提到的 java.library.path 进行测试。您有两种选择。

What you need is to specify the aforementioned java.library.path for your tests. You have two choices.

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

One you can run tests in a forked JVM, add following lines to your build.sbt

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

第二步,您可以使用(请注意,这将覆盖整个过程的 java.library.path ),如果您不进行测试,则将在测试中可见

Second you can run sbt using (note this will override the java.library.path for the whole process), which in case you're not forking tests, will be visible in tests

sbt -Djava.library.path=./native

更多推荐

如何声明对本机.so库的依赖关系以进行测试?

本文发布于:2023-07-29 11:08:33,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1240159.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:本机   进行测试   声明   关系

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!