en mi proyecto J2EE tengo un par de dependencias, que no están disponibles en ningún repositorio de Maven, porque son bibliotecas propietarias. Estas bibliotecas deben estar disponibles en tiempo de ejecución, por lo que deben copiarse en el destino /.../ WEB-INF / lib ...
En este momento, los enumero como dependencia del sistema en mi POM, pero con este método el problema es que no se copian en la compilación de destino durante la compilación. Además, este método no es muy elegante.
Entonces, ¿cuál es la mejor manera de integrarlos en Maven?
Nota: no quiero crear mi propio repositorio de Maven.
java
maven-2
build-process
Sansón
fuente
fuente
Respuestas:
Como ha dicho, no desea configurar su propio repositorio, tal vez esto ayude.
Puede utilizar el objetivo del archivo de instalación de maven-install-plugin para instalar un archivo en el repositorio local. Si crea un script con una invocación de Maven para cada archivo y lo mantiene junto con los archivos jar, usted (y cualquier otra persona con acceso) puede instalar fácilmente los archivos jar (y los archivos pom asociados) en su repositorio local.
Por ejemplo:
o solo
A continuación, puede hacer referencia a las dependencias como de costumbre en su proyecto.
Sin embargo, tu mejor opción es configurar un repositorio remoto interno y te recomiendo usar Nexus . Puede ejecutarse en su caja de desarrollo si es necesario, y la sobrecarga es mínima.
fuente
Para las personas que desean una solución rápida a este problema:
simplemente dé a su biblioteca un ID de grupo único y un nombre de artefacto y señale dónde se encuentra en el sistema de archivos. Tú eres bueno para irte.
Por supuesto, esta es una solución rápida sucia que SOLO funcionará en su máquina y si no cambia la ruta a las bibliotecas. Pero algunas veces, eso es todo lo que desea, ejecutar y hacer algunas pruebas.
EDITAR: simplemente volvió a repetir la pregunta y me di cuenta de que el usuario ya estaba usando mi solución como una solución temporal. Dejaré mi respuesta como una ayuda rápida para otros que vengan a esta pregunta. Si alguien no está de acuerdo con esto, déjeme un comentario. :)
fuente
Cree una carpeta de repositorio en su proyecto. Echemos
Luego, instale su jar personalizado en este repositorio:
Por último, agregue las siguientes definiciones de repositorio y dependencia a los proyectos pom.xml:
fuente
/
(es decir, indica una carpeta), el repositorio se crea con groupId. Porfoo.com
ejemplo : si el ID de grupo es y localRepositoryPath esrepo
, entonces la carpeta de repositorio se convierte enrepo.foo.com
.Necesita configurar un repositorio local que albergará dichas bibliotecas. Hay varios proyectos que hacen exactamente eso. Por ejemplo Artifactory .
fuente
¡Ninguna de las soluciones funciona si está utilizando la compilación Jenkins! Cuando pom se ejecuta dentro del servidor de compilación de Jenkins ... estas soluciones fallarán, ya que Jenkins ejecutará pom intentará descargar estos archivos del repositorio empresarial.
Copie los frascos en src / main / resources / lib (cree la carpeta lib). Estos serán parte de su proyecto y llegarán hasta el servidor de implementación. En el servidor de implementación, asegúrese de que sus scripts de inicio contengan src / main / resources / lib / * en classpath. Viola.
fuente
puede instalarlos en un repositorio local privado (por ejemplo, .m2 / repository en su directorio de inicio): más detalles aquí
fuente
Si lo entiendo bien, si lo que desea hacer es exportar dependencias durante la fase de compilación para que no haya necesidad de recuperar manualmente cada una de las bibliotecas necesarias, puede usar las dependencias de copia de mojo .
Espero que pueda ser útil en su caso ( ejemplos )
fuente
La solución de @Ric Jafe es lo que funcionó para mí.
Esto es exactamente lo que estaba buscando. Una forma de impulsarlo para investigar el código de prueba. Nada sofisticado. Sí, sé que eso es lo que todos dicen :) Las diversas soluciones de complementos de Maven parecen ser excesivas para mis propósitos. Tengo algunos frascos que me fueron entregados como bibliotecas de terceros con un archivo pom. Quiero que se compile / ejecute rápidamente. Esta solución que adapté trivialmente a Python funcionó de maravilla para mí. Cortar y pegar en mi pom. El código Python / Perl para esta tarea se encuentra en estas preguntas y respuestas: ¿Puedo agregar archivos jar a la ruta de clases de compilación de maven 2 sin instalarlos?
fuente
Continúe usándolos como una dependencia del sistema y cópielos en el destino /.../ WEB-INF / lib ... usando el complemento de dependencia de Maven:
http://maven.apache.org/plugins/maven-dependency-plugin/examples/copying-artifacts.html
fuente
Instalar solo no funcionó para mí.
fuente