Posts tagged ‘Nexus’

Repositorios Maven: Nexus

Como dijimos en nuestra pequeña introducción a Maven, el lugar donde se va a almacenar nuestro software son los llamados repositorios.

509610_84209301_250

La distribución de Maven por defecto se descarga los artefactos del repositorio principal de Maven. Si bien esto a nivel personal es factible, cuando varios desarrolladores se tienen que descargar los mismos jars pesados una y otra vez es un despilfarro de ancho de banda considerable.

Por ello se suele instalar un repositorio propio. Podemos usar un servidor web sirviendo los directorios del repositorio pero no nos proporciona características muy deseables como son: ejercer de intermediario con otros repositorios, facilidades de navegación, facilidades de búsqueda o formularios para subir artefactos entre otras. Por ello existen otras soluciones que nos facilitan la vida, todas ellas libres y que son comparadas en esta matriz de comparación de gestores de repositorios Maven (Inglés en inglés).

Yo en su día probé Artifactory del que además tenemos esta guía de utilización de Artifactory. Sobre Archiva también he encontrado esta muy completa guía de utilización de Archiva (en tres partes II y III). Por eso (entre otras cosas) me he decidido a probar Nexus.

Nexus viene preparado para levantar un servidor y su instalación de esa manera está bien documentada en Maven: The definitive guide que es como nos recomiendan empezar en la web de Nexus. Pero yo quería aprovechar el Tomcat que tengo corriendo en mi servidor Xubuntu por lo que decidí instalar el war que se nos ofrece en la sección de descargas de Nexus. Los pasos que seguí son sencillos:

  • Descargué el war (nexus-1.1.1.war en ese momento) y lo renombré a nexus.war (para que la aplicación la despliegue como nexus y no nexus-1.1.1).
  • Desplegué el war a través de la aplicación manager de Tomcat.
  • Modifiqué el archivo plexus.properties dentro del directorio de la aplicación desplegada (en mi caso /usr/share/tomcat5.5/webapps/nexus/WEB-INF) para añadirle una ruta válida. Yo puse: nexus-work=/home/nexus/sonatype-works/nexus
  • Por último y aunque según la documentación no era necesario, añadí al script de arranque de Tomcat (/etc/init.d/tomcat5.5) la variable de entorno para indicarle el directorio de nexus. Al final de la línea que empieza por JAVA_OPTS se añade -DNEXUS_HOME=/home/nexus

Con esto y tras reiniciar el Tomcat, ya podemos apuntar nuestro navegador a la aplicación recién instalada (en mi caso http://server:port/nexus/). Podemos ver la página de Nexus que nos recibe:

nexus1_640

Sólo con esto ya podemos ver que Nexus nos va a proporcionar búsqueda de artefactos, así como algunas posibilidades de suscripción mediante RSS (por ejemplo a nuevos artefactos subidos). Para poder configurar Nexus, debemos identificarnos como administrador («admin» con «admin123» por defecto). Lo primero que debemos configurar es:

  • Por seguridad modificar la contraseña del administrador (menú «Change Password»).
  • Configurar el servidor de correo (para correos de recuperación de contraseña). En el menú «Server» bajo «Administration».
  • Habilitar el indexado de repositorios remotos. En el menú «Repositories» bajo «Administration», pinchando sobre los repositorios de tipo proxy. Pondremos a true el campo «Download Remote Indexes» (Nexus se baja los índices de esos repositorios y puede tardar un rato). De esta manera podemos buscar artefactos que se encuentren en los repositorios remotos y descargarlos a nuestro repositorio

Finalmente tendríamos que configurar nuestro Maven local para que acceda a nuestro nuevo repositorio. Para ello introduciremos en el archivo de configuración de Maven (settings.xml en el directorio .m2 dentro de nuestro directorio personal) las líneas necesarias para reflejar nuestro repositorio:

    <mirror>
      <id>Nexus</id>
      <mirrorOf>central</mirrorOf>
      <name>Nexus Public Mirror.</name>
      <url>http://server:port/nexus/content/groups/public</url>
    </mirror>

Esto es todo por esta primera entrada sobre Nexus. En próximas entradas hablaré de algunas características de Nexus como son los grupos (fijaros ese groups en la ruta al repositorio en el código anterior) o la seguridad.

20 enero 2009 at 8:13 pm 1 comentario


Mi perfil

View Miguel Orbegozo's profile on LinkedIn

Feedjit

Feeds

Otros…

BlogESfera Directorio de Blogs Hispanos - Agrega tu Blog

Bitacoras.com

Add to Technorati Favorites