2009-06-16 24 views
29

Ho un programma Java con Maven che gestisce le sue dipendenze. Una di queste dipendenze è un wrapper JNI per un altro programma. Maven si occupa del riferimento al file JAR pertinente, ma mi viene lasciato il caos con il file DLL.Gestione delle dipendenze DLL con Maven

C'è un buon modo per avere Maven anche per gestire la DLL? Idealmente mi piacerebbe avere la DLL caricata nel nostro repository locale come il file JAR.

risposta

32

Hai provato qualcosa di simile:

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

è possibile aggiungere al repository di Maven con qualcosa di simile:

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

non l'hanno fatto per le DLL, ma qualcosa del genere dovrebbe funzionare .

+0

In realtà, dopo aver trascorso del tempo aggiuntivo a pensarci, ho deciso che valeva la pena investire nello sforzo di rimuovere la necessità della DLL tramite JNI. Probabilmente ne vale la pena a lungo termine. Osserverò il tuo suggerimento anche se per curiosità. – Kris

+3

@Kris, probabilmente è una buona idea. Ho pensato di suggerirlo, ma non ho l'abitudine di dire alla gente di correggere il codice che non ho visto. AKA, revisione del codice psichico – sal

+1

@sal, così facendo avere il gestore di file .dll di gestire automaticamente System.loadLibrary ()? O devi ancora chiamare System.loadLibrary ()? Mi sto solo chiedendo come mi assicuro che la DLL sia caricata per altri oggetti da usare. –

Problemi correlati