2009-06-16 18 views
29

Tengo un programa Java con Maven administrando sus dependencias. Una de esas dependencias es un contenedor JNI para otro programa. Maven se encarga de la referencia al archivo JAR relevante, pero yo mismo estoy jugando con el archivo DLL.Administración de dependencias de DLL con Maven

¿Hay una buena manera de que Maven maneje la DLL también? Idealmente, me gustaría tener la DLL cargada en nuestro repositorio local como el archivo JAR.

Respuesta

32

¿Usted intentó algo como esto:

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

Usted puede añadirlos al repositorio de Maven con algo como esto:

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

no ha hecho esto para DLL, sino algo como esto debería funcionar .

+0

En realidad, después de pasar un tiempo adicional pensando en ello, decidí que valía la pena invertir en el esfuerzo de eliminar la necesidad de la DLL a través de JNI. Probablemente vale la pena el esfuerzo en el largo plazo. Aunque consideraré tu sugerencia por curiosidad. – Kris

+3

@Kris, esa es probablemente una buena idea. Pensé en sugerir eso, pero no me hago el hábito de decirle a la gente que corrija el código que no he visto. AKA, revisión del código psíquico – sal

+1

@sal, también lo hace si maven administra el archivo .dll automáticamente llama a System.loadLibrary ()? ¿O todavía tiene que llamar a System.loadLibrary ()? Me pregunto cómo me aseguro de que dll esté cargado para que otros objetos lo usen. –

Cuestiones relacionadas