Maven を使用して、OpenCV コンピューター ビジョン ライブラリの JNI ラッパーに依存するプロジェクトを構築しようとしています。FreeHEP の NAR Maven プラグインを使用して、http: //ubaa.net/shared/processing/opencv/で OpenCV ラッパーを "maven-ize" することができましたが、そのプラグインのドキュメントはやや不足しています。
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