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