2009-06-16 31 views
29

Mam program Java z Mavenem zarządzającym jego zależnościami. Jedną z tych zależności jest opakowanie JNI dla innego programu. Maven zajmuje się odniesieniem do odpowiedniego pliku JAR, ale ja sam zostawiam plik DLL.Zarządzanie zależnościami DLL z Maven

Czy istnieje dobry sposób na obsługę Maven również DLL? Idealnie chciałbym załadować bibliotekę DLL do naszego lokalnego repozytorium, takiego jak plik JAR.

Odpowiedz

32

Czy spróbować czegoś takiego:

<dependency> 
    <groupId>com.foo</groupId> 
    <artifactId>footron</artifactId> 
    <version>4.2</version> 
    <scope>runtime</scope> 
    <type>dll</type> 
</dependency> 

Można dodać je do repozytorium Maven za coś takiego:

mvn install:install-file -Dfile=footron.dll -DgroupId=com.foo -DartifactId=footron -Dversion=4.2 -Dpackaging=dll -DgeneratePom=true 

nie zostało to zrobione dla bibliotek DLL, ale coś jak to powinno działać .

+0

Właściwie, po tym, jak poświęciłem trochę czasu na zastanowienie się nad tym, zdecydowałem, że warto zainwestować w wysiłek usunięcia biblioteki DLL za pośrednictwem JNI. Prawdopodobnie wart wysiłku na dłuższą metę. Spojrzę na twoją sugestię, ale z ciekawości. – Kris

+3

@ Chris, to chyba dobry pomysł. Pomyślałem o tym, ale nie robię z tego nawyku mówienia ludziom, żeby naprawili kod, którego nie widziałem. AKA, przegląd kodu psychicznego – sal

+1

@sal, więc czy posiadanie maven zarządza plikiem .dll automatycznie wywołuje System.loadLibrary ()? Czy nadal musisz zadzwonić do System.loadLibrary ()? Zastanawiam się, w jaki sposób upewniam się, że biblioteka dll jest ładowana w celu użycia innych obiektów. –

Powiązane problemy