Ho un'applicazione SBT che utilizza JavaCV su Windows.
Il mio build.sbt introduce JavaCV e le sue dipendenze usando:
classpathTypes += "maven-plugin"
libraryDependencies += "org.bytedeco" % "javacv" % "0.9"
Questo richiama JavaCV e i suoi dipendenti (JavaCPP),ma non sta tirando il JAR con le librerie specifiche della piattaforma (opencv-windows-x86_64.jar). Questo mi permette di costruire, ma ottengo "UnsatisfiedLinkError: no jniopencv_core in java.library.path"
Basato su http://www.warski.org/blog/2014/01/using-javacv-with-sbt Ho anche provato
libraryDependencies += "org.bytedeco" % "javacv" % "0.9" classifier "windows-x86_64"
SBT fallisce nel tentativo di risolvere quella dipendenza perché sta cercando http://repo1.maven.org/maven2/org/bytedeco/javacv/0.9/javacv-0.9-windows-x86_64.jar che non esiste.
Se copio opencv-windows-x86_64.jar nella directory lib, allora tutto funziona, ma questo impedisce di utilizzare un gestore delle dipendenze.
Qualcuno sa come fare in modo che SBT risolva correttamente i jar specifici della piattaforma per JavaCV 0.9?
risposte:
0 per risposta № 1Usando il -Dplatform.dependencies=true
l'opzione sulla riga di comando dovrebbe fare il trucco!
0 per risposta № 2
Ho scritto un plugin SBT per rendere la gestione delle dipendenze di OpenCV (sì, incluse le dipendenze della piattaforma) un unico liner: https://github.com/lloydmeta/sbt-opencv
Basta aggiungere questo al tuo project/plugins.sbt
:
addSbtPlugin("com.beachape" % "sbt-opencv" % "1.4")