我正在尝试使用 maven 构建一个依赖于 OpenCV 计算机视觉库的 JNI 包装器的项目。我已经能够通过使用 FreeHEP 的 NAR maven 插件在此处“maven-ize”OpenCV 包装器:http : //ubaa.net/shared/processing/opencv/,但该插件的文档有些缺乏。
我已经能够创建一个依赖于 OpenCV jni 项目(我称之为 OpenCVJava)的项目(imagedetect)。imagedetect 将编译,但是,任何测试、集成测试或包目标都会失败,并显示有关 java.library.path 中缺少库的错误。
!!! required library not found : no OpenCV in java.library.path
Verify that the java.library.path property is correctly set and 'libcxcore.so', 'libcv.so', 'libcvaux.so', 'libml.so', and 'libhighgui.so' are placed (or linked) in one of your system shared libraries folder
这尤其令人沮丧——我知道解决这个问题的唯一方法是以某种方式追踪 opencv 库的 .nar 文件,手动提取它们,设置 java.library.path,然后调用 gnaraly java 命令来实际执行具有正确类路径/库路径的测试/应用程序。这是行不通的——特别是如果这个问题持续存在于传递依赖中。
我怎样才能使这个构建/测试/执行系统更干净?我没有使用 FreeHEP,但我想坚持使用 maven,因为它使我们最常见的用例变得更加简单。
FreeHEP Nar 插件:http: //java.freehep.org/freehep-nar-plugin/intro.html