Я пытаюсь использовать maven для создания проекта, который зависит от JNI-оболочки вокруг библиотеки компьютерного зрения OpenCV. Я смог "maven-ize" обёртки OpenCV здесь: http://ubaa.net/shared/processing/opencv/ с помощью плагина NAR maven от FreeHEP, но документации для этого плагина немного не хватает.
Мне удалось создать проект (imagedetect), который зависит от проекта jni OpenCV (я называю это OpenCVJava). 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
Это особенно расстраивает - единственный известный мне способ решить эту проблему - каким-то образом отследить файл .nar для библиотек opencv, извлечь их вручную, установить java.library.path и затем вызвать команду gnaraly java на самом деле выполнить тесты / приложения с правильным путем к classpath / библиотеке. Это не сработает, особенно если эта проблема сохраняется в переходных зависимостях.
Как я могу сделать эту сборку / тестирование / выполнение системы чище? Я не настроен на FreeHEP, но я хотел бы придерживаться maven, так как он делает наши наиболее распространенные варианты использования намного проще.
Плагин FreeHEP Nar: http://java.freehep.org/freehep-nar-plugin/intro.html