He creado con éxito un pequeño entorno de ingeniería de software (SEE) para aplicaciones Java que, entre otras herramientas, está basado en maven y nexus. Mi problema real es, no es una sorpresa, que el nexo generalmente requiera acceso a Internet para obtener los artefactos solicitados de los repositorios centrales. Pero el SEE tiene que estar estrictamente fuera de línea y no hay forma de cambiarlo (... razones de seguridad).Uso de Sonatype nexus en la red local
Mi primera solución rápida fue duplicar la instalación de nexus/maven en la máquina, que estaba conectada a internet, ejecutar algunos pom estándar para poblar el nexo duplicado y migrar la caché mediante CD-ROM al sistema de destino. Muy feo. Realmente no estoy esperando adaptar ese proceso para obtener actualizaciones de artefactos o artefactos nuevos. De hecho, ahora solo solemos importar las bibliotecas que necesitamos y crear nuevos artefactos (con nexus) en lugar de utilizar los oficiales de central y otros.
¿Alguien ha enfrentado el mismo desafío y ha encontrado un enfoque más inteligente y eficiente?
Editar
Gracias por todas las respuestas, creo que tengo que ser más precisa sobre el problema real y la solución que estoy pensando en este momento: Creo que tengo para crear, rellenar y sincronice un repositorio "central" privado, basado en repositorios centrales y otros en Internet, o exactamente: dos repositorios idénticos. Uno conectado a internet el otro en la red local. Luego puedo mantener el repositorio conectado a Internet 'actualizado' y copiar los cambios a través de DVD en el repositorio local, que es visible para Nexus.
¿Funcionaría? ¿Hay documentación disponible sobre cómo configurar algo como 'central' en un servidor privado, hay un mecanismo para sincronizar artefactos seleccionados?
(no quería publicar mis pensamientos al principio porque tenía la esperanza de obtener ideas totalmente diferentes)
Edición 2 - "mejores prácticas" - añadió bajo petición
Nuestro "mejores prácticas "para el uso de Maven en un entorno que está totalmente desconectado de internet:
- instalamos nexo en un servidor central, de manera que las estaciones de trabajo de desarrollo de software tenían un servidor para hablar (y que era nuestro propio representante artefacto ository)
- Exportamos los archivos POM a una estación de trabajo con acceso a internet, borramos el repositorio local en esa máquina e hicimos un
dependency:go-offline
(plugin). Este poblado el repositorio local con todos los artedfacts requeridos - importamos este repositorio local para el entorno seguro y ha añadido todos los plugins de nexo (acaba de copiar los ficheros - la estructura es idéntica)
hacer esto una vez a la semana con todos los archivos POM (pueden ser automatizados) y usted tiene un repositorio local bastante estable y utilizable.
Por estrictamente fuera de línea, ¿quiere decir desconectado de Internet o sin red en absoluto? –
Gracias por esa observación: el entorno tiene una red pequeña: un servidor con nexus, algunos clientes con IDE de eclipse. Pero la red no está conectada a internet (ni a ninguna otra red). –
Andreas- Han pasado más de un año. ¿Tiene alguna lección aprendida para informar? Estoy frente al mismo problema que tú. –