Maven – Instalar Nexus para usarlo como repositorio interno

septiembre 27, 2011

Hay algunas dependencias que no podrás encontrar en repositorios públicos por alguna razón, como las librerías OJDBC de Oracle. Seguro que puedes instalarlas en tu máquina, pero -en una organización- no quisieras hacer esto en la computadora de cada desarrollador por cada librería que necesiten. Bueno, entonces lo que necesitas es tener tu propio repositorio donde puedas poner todas las librerías comunes que utilicen en tu empresa (las que desarrollen y las de terceros). Por suerte, existe Nexus.
Para instalarlo simplemente descargalo, descomprimelo y ejecutalo.

mkdir nexus
cd nexus
wget http://nexus.sonatype.org/downloads/nexus-oss-webapp-1.9.2.3-bundle.tar.gz
tar -xvzf nexus-oss-webapp-1.9.2.3-bundle.tar.gz
./nexus-oss-webapp-1.9.2.3/bin/jsw/linux-x86-32/nexus start

Asegurate que la última línea corresponda a tu arquitectura, busca el ejecutable que corresponda en el directorio ./nexus-oss-webapp-1.9.2.3/bin/jsw/

Después de ejecutar el último comando debes ver algo como

2011-09-21 15:37:21 INFO [er_start_runner] - org.mortbay.log - Started SelectChannelConnector@0.0.0.0:8081

Abre un navegador y ve a http://localhost:8081/nexus. Debes poder ver la consola de administración. Listo, ya tienes tu propio repositorio instalado.

Ingresa con el usuario “admin” y contraseña “admin123” para ver las opciones administrativas (cambia la contraseña de paso). Te conviene activar la opción “Download Remote Indexes” en la configuración de los repositorios, al menos para Maven Central. Con esto las búsquedas serán más rápidas.
Para ver el Log da clic en la opción “System Files” y selecciona el documento “nexus.log”.

Para que este repositorio sea utilizado dentro de la organización, en la PC de cada desarrollador edita el archivo ${user.home}/.m2/settings.xml y pon el contenido

<?xml version="1.0"?>
<settings>
	<mirrors>
		<mirror>
			<id>nexus.acme.com</id>
			<name>Acme</name>
			<url>http://nexus.acme.com:8081/nexus/content/groups/public/</url>
			<mirrorOf>*</mirrorOf>
		</mirror>
	</mirrors>
</settings>

Por supuesto nexus.acme.com puede ser sustituído por la IP del servidor, p. ej. 192.168.0.250
Ten en cuenta que al poner <mirrorOf>*</mirrorOf> tu repositorio sera utilizado para cualquier dependencia, incluso las de proyectos que tengan configurado otro repositorio en el archivo pom.xml, por lo que si no tienes configurados esos repositorios en Nexus, las dependencias no serán encontradas. Podrías especificar sólo ciertos repositorios de la siguiente forma: <mirrorOf>central,google,apache-snapshots</mirrorOf>
Finalmente, para utilizar el repositorio en tus proyectos, agrega las siguientes líneas al archivo pom.xml

  <repositories>
    <repository>
      <id>nexus.acme.com</id>
      <url>http://nexus.acme.com:8081/nexus/content/groups/public/</url>
    </repository>
  </repositories>

Fuentes:

http://my.safaribooksonline.com/
http://maven.apache.org/guides/mini/guide-mirror-settings.html

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: