Hi,
ich arbeite gerade mit OpenCV, welches man für Windows einfach runterladen und installieren kann und wie Linux/Mac selbst bauen muss. Leider gibt es dafür keine Maven-Dependency.
Mein Project ist ein JavaFX Maven Projekt und ist auf github verfügbar, privat, weil es ein Teamprojekt ist.
Mein Problem ist, dass jedes Teammitglied erst mal OpenCV und MySQL installieren muss, bevor er mit dem Project arbeiten kann. Startet man die Applikation, dann wird direkt eine Verbindung zur DB aufgebaut und die Libraries von OpenCV werden geladen (eine jar und eine native library).
Für die DB habe ich eine Lösung.. ich versuche eine Verbindung aufzubauen. Falls die DB nicht existiert führe ich ein Script aus (das das Schema für die DB erstellt), das sich im Resource-Folder befindet und setze dann die entsprechenden Properties.
Doch wie mache ich das mit OpenCV?
Ich vermute mal, die .jar und vorallem die .dll Dateien benötigen weitere Abhängigkeiten (damit meine ich weitere Dateien von OpenCV, die bei der Installation abgelegt/gebaut werden). Kann ich einfach den ganzen Installationsordner auf github, also zusammen mit dem Project, pushen?
Meine Lösung wäre folgende gewesen:
Wie Eclipse, Netbeans, etc. würde ich in den Einstellungen der Applikation dem User die Möglichkeit geben, den Pfad zur OpenCV .jar und .dll anzugeben. Diese würde ich in Properties speichern.
Diese würde ich dann einfach laden, falls die Property gesetzt wurde a la:
Meine Missmutung: enthält die .dll wirklich alles notwendige (also alle Abhängigkeiten, die sie benötigt?). Denn meines Wissens nach gibt es bei C++ einen Linker, der die Header-Dateien oder so ähnlich miteinander verknüpft..
Also was ich erreichen will:
Das Projekt leicht zum Laufen kriegen, wenn man from the scratch anfängt. Deshalb habe ich mich für Maven und github entschieden. Falls jemand kein MySQL und OpenCV installiert hat, soll es trotzdem reibungslos funktionieren. Ok, ich kann jemandem zutrauen, MySQL zu installieren. Bei OpenCV sieht das etwas anders aus (gerade wenn man mit Linux unterwegs ist). Da würde ich dem User gerne zuvor kommen bzw. ihm die Arbeit ersparen.
Habt ihr eine elegante Lösung, wie ich OpenCV quasi mit in mein Project aufnehme?
Oder geht das gar nicht, weil man die .dll zuerst als solche in der IDE konfigurieren muss?
Hoffe mir kann jemand helfen
Falls es noch Fragen gibt, nur raus damit
ich arbeite gerade mit OpenCV, welches man für Windows einfach runterladen und installieren kann und wie Linux/Mac selbst bauen muss. Leider gibt es dafür keine Maven-Dependency.
Mein Project ist ein JavaFX Maven Projekt und ist auf github verfügbar, privat, weil es ein Teamprojekt ist.
Mein Problem ist, dass jedes Teammitglied erst mal OpenCV und MySQL installieren muss, bevor er mit dem Project arbeiten kann. Startet man die Applikation, dann wird direkt eine Verbindung zur DB aufgebaut und die Libraries von OpenCV werden geladen (eine jar und eine native library).
Für die DB habe ich eine Lösung.. ich versuche eine Verbindung aufzubauen. Falls die DB nicht existiert führe ich ein Script aus (das das Schema für die DB erstellt), das sich im Resource-Folder befindet und setze dann die entsprechenden Properties.
Doch wie mache ich das mit OpenCV?
Ich vermute mal, die .jar und vorallem die .dll Dateien benötigen weitere Abhängigkeiten (damit meine ich weitere Dateien von OpenCV, die bei der Installation abgelegt/gebaut werden). Kann ich einfach den ganzen Installationsordner auf github, also zusammen mit dem Project, pushen?
Meine Lösung wäre folgende gewesen:
Wie Eclipse, Netbeans, etc. würde ich in den Einstellungen der Applikation dem User die Möglichkeit geben, den Pfad zur OpenCV .jar und .dll anzugeben. Diese würde ich in Properties speichern.
Diese würde ich dann einfach laden, falls die Property gesetzt wurde a la:
Code:
//Unvollständiger Sample-Code:
if(opencvProperty not null){
System.load(opencvProperty);
....
} else {
deaktiviereGUIElemente();
}
Also was ich erreichen will:
Das Projekt leicht zum Laufen kriegen, wenn man from the scratch anfängt. Deshalb habe ich mich für Maven und github entschieden. Falls jemand kein MySQL und OpenCV installiert hat, soll es trotzdem reibungslos funktionieren. Ok, ich kann jemandem zutrauen, MySQL zu installieren. Bei OpenCV sieht das etwas anders aus (gerade wenn man mit Linux unterwegs ist). Da würde ich dem User gerne zuvor kommen bzw. ihm die Arbeit ersparen.
Habt ihr eine elegante Lösung, wie ich OpenCV quasi mit in mein Project aufnehme?
Oder geht das gar nicht, weil man die .dll zuerst als solche in der IDE konfigurieren muss?
Hoffe mir kann jemand helfen
Falls es noch Fragen gibt, nur raus damit