tengo el siguiente escenario:proyecto Maven con dependencia nativa y la copia de archivos
mibiblioteca es una biblioteca (por el que tengo las fuentes, así que me gustaría ponerlas en un proyecto Maven mibiblioteca: mibiblioteca por ejemplo,) Esta biblioteca tiene una dependencia de jar para la que solo tengo el jar, y no se encuentra en el repositorio de Maven (y tampoco quiero instalarlo allí). Para hacerlo compilar, algo como esto funcionaría: agregue el archivo jar al proyecto mylib en una carpeta "lib", p. "lib/thirdpartylib.jar" y en pom.xml de mylib, agregue una dependencia con el grupo/artefacto/versión elegido por sí mismo y una entrada "<scope>system</scope><systemPath>${project.basedir}/lib/thirdpartylib.jar</systemPath>
". El proyecto mylib compilará bien.
Tenga en cuenta que mylib también tiene una dependencia en tiempo de ejecución de un archivo dll, digamos thirdparty.dll. Pero para compilación esto no es importante.
Sin embargo, ahora lo que estoy preguntando cómo lograr los siguientes:
Algún otro proyecto, por ejemplo, proyecto "X", que utiliza mibiblioteca, necesitará el
- mylib.jar
- thirdpartylib.jar
- thirdpartylib.dll
,
y va a tener que ajustar la java.library.path al directorio (por ejemplo, "") tal que el jar y dll de terceros son encontrados por la máquina virtual ejecutora.
Mi preocupación es esta: me gustaría que las cosas jaripart/dll de terceros sean responsabilidad del proyecto mylib. Es decir. Quiero definir el conocimiento, que necesita copiar el archivo jar y dll de terceros a la carpeta de destino y que java.library.path se refiere a ellos, para ser parte del proyecto mylib (el mylib pom sabe cómo debe ser la cosa) utilizado en otros proyectos). Sin embargo, quiero que este conocimiento (es decir, copiar instrucciones, independientemente de cómo se hacen exactamente en Maven) para ser transferido transitoriamente a cualquier otro proyecto utilizando mylib, como X, por ejemplo. ¿Es eso de alguna manera posible?
[Mi solución de hack por el momento sería que tengo una copia de las cosas de terceros en X, pero incluso entonces no sé cómo copiar/tratar el archivo dll, así que tendría que escribir un archivo Léame diciendo que el archivo dll tiene que ser copiado a la carpeta bin de la VM ejecutante).
¡Cualquier sugerencia es apreciada!
Me quedo con tu solución, gracias hombre. – mtrovo