Consultor tecnolgico de desarrollo de proyectos informticos. Co-autor del libro "Actualizacin y mantenimiento del PC (Edicin de 2010) publicado por Anaya Multimedia
Ingeniero Tcnico en Informtica de Sistemas e Ingeniero en Informtica (premio al mejor expediente de su promocin)
Puedes encontrarme en Autentia: Ofrecemos servicios de soporte a desarrollo, factora y formacin
Somos expertos en Java/J2EE
Ver todos los tutoriales del autor
Fecha de publicación del tutorial: 2008-09-19
Archiva: Gestión de repositorios maven (I).
- 1. Introducción
- 2. Instalación
- 3. Configuración
-
- 3.1 Search -> Find.
- 3.2 Search -> Find Artifact.
- 3.3 Search -> Browse.
- 3.4 Manage -> Reports.
- 3.5 Manage -> User Management.
-
- 3.5.1 Roles de administración de Archiva
- 3.5.2 Roles de acceso a repositorio
- 3.6 Manage -> Appearance.
- 3.7 Manage -> Upload Artifact.
- 3.8 Administration -> Repository Groups.
- 3.9 Administration -> Repositories.
- 3.10 Administration -> Proxy Connectors.
- 3.11 Administration -> Legacy Support.
- 3.12 Administration -> Network proxies.
- 3.13 Administration -> Repository Scanning.
- 3.14 Administration -> Database.
- 4. RSS
- 5. Conclusión
1. Introducción
Archiva (maven.apache.org/archiva) pertenece al conjunto de proyectos desarrollados por el equipo de Jakarta Maven, como Continuum, SCM, Wagon, JXR, Doxia ... Básicamente es una herramienta de gestión de repositorios maven. Entre las funcionalidades que podemos destacar y que veremos más adelante en el tutorial, podemos citar: gestión de control de acceso a los repositorios definidos, cacheo de artefactos configurando proxys a repositorios remotos y gestión y mantenimiento de repositorios maven 1.x y 2.x (indexación, búsquedas, informes ...).
2. Instalación
El equipo de maven proporciona dos formas de instalar Archiva. Como una aplicación standalone o por medio de una aplicación web (WAR) desplegada en un servidor de aplicaciones Tomcat 5.5 o 6.0.x.
En este tutorial sólo veremos la primera, así que manos a la obra. Primero, descargamos de apache.rediris.es/archiva/binaries/apache-archiva-1.1.1-bin.tar.gz la aplicación. Segundo, configuramos el entorno para empezar su instalación siguiendo los siguientes pasos:
- Creamos un usuario y grupo llamados maven.
- su -c "groupadd maven"
- su -c "useradd -g maven maven"
- su -c "passwd maven"
- Creamos un directorio donde situaremos la aplicación standalone. En nuestro caso /opt/maven/archiva, cuyo propietario sera el usuario maven y grupo maven.
- su -c "mkdir /opt/maven"
- chown -R maven:maven /opt/maven
- su -c "su - maven"
- cd /opt/maven
- mkdir archiva
- cd archiva
- tar -xvf apache-archiva-1.1.1-bin.tar.gz
- mkdir repositories
- Crear un conjunto de scripts para el arranque y la parada de archiva.
Nota
Para que archiva arranque adecuadamente el entorno de usuario debe tener configurada una jdk igual o superior a 1.5. En nuestro caso configuraremos nuestro entorno con la jdk 1.6.0_03.
- cd /opt/maven/apache-archiva-1.1.1/bin
- Creamos un script de arranque llamado start.sh que contiene lo siguiente.
JAVA_HOME=/opt/jdk1.6.0_03
ARCHIVA_HOME=/opt/maven/apache-archiva-1.1.1
LOG_ARCHIVA=$ARCHIVA_HOME/logs
export JAVA_HOME
if [ ! -d $LOG_ARCHIVA ]; then
mkdir $LOG_ARCHIVA
fi
if [ -f $ARCHIVA_HOME/bin/archiva ]; then
$ARCHIVA_HOME/bin/archiva start
else
exit 1
fi
Advertencia
Es posible que al ejecutar el comando de arranque, Archiva no se inicie. Esto puede ser debido a que el script "archiva" no reconozca nuestra arquitectura y por tanto no sepa cual es el script que debe lanzar. Para solucionar este problema basta con renombrar el fichero wrapper-arquitectura por wrapper.
- Creamos un script de parada llamado stop.sh
JAVA_HOME=/opt/jdk1.6.0_03
ARCHIVA_HOME=/opt/maven/apache-archiva-1.1.1
LOG_ARCHIVA=$ARCHIVA_HOME/logs
export JAVA_HOME
if [ ! -d $LOG_ARCHIVA ]; then
mkdir $LOG_ARCHIVA
fi
if [ -f $ARCHIVA_HOME/bin/archiva ]; then
$ARCHIVA_HOME/bin/archiva stop
else
exit 1
fi
- Creamos un script de inicialización (/etc/init.d/archiva), que nos permitirá iniciar archiva cuando arranque el sistema.
#
# chkconfig: 345 60 80
# description: Arranca y para el servidor Archiva.
#
# Source function library.
. /etc/rc.d/init.d/functions
ret=0
case $1 in
start)
gprintf "Starting Archiva: "
su -c "/opt/maven/apache-archiva-1.1.1/bin/start.sh" maven &
success "Archiva startup"
ret=$?
echo
;;
stop)
gprintf "Stopping Archiva: "
su -c "/opt/maven/apache-archiva-1.1.1/bin/stop.sh" maven
ret=$?
if [ $ret = 0 ]; then
success "Archiva shutdown"
else
failure "Archiva shutdown"
fi
echo
;;
restart)
$0 stop
sleep 5
$0 start
ret=$?
;;
*)
gprintf "Usage: %s\n" "$(basename $0) {start|stop|restart}"
exit 0
;;
esac
exit $ret
- Ahora utilizamos el comando chkconfig (similar al comando update-rc.d en sistemas basados en debian) para que cree los enlaces necesarios en rcX.d para el arranque y la parada del servicio.
- chkconfig --add archiva
- Si todo ha ido bien, arrancamos archiva.
- cd /etc/init.d/
- ./archiva start
- Y por último, accedemos a la aplicación localhost:8080/archiva
3. Configuración
La primera vez que accedemos a Archiva, nos pedirá los datos para crear el usuario administrador de la aplicación:
Figura 1. Creación de usuario administrador.
A continuación, deberemos logarnos en el sistema.
Figura 2. Accediendo a Archiva.
Lo primero que vemos en la parte de la derecha es el menú, dividido en tres grandes bloques:
- Find: opciones para la búsqueda de artefactos subidos a los repositorios definidos en la aplicación.
- Manage: opciones de administración de Archiva como gestión de usuarios, informes y personalización de la aplicación.
- Administration: opciones de gestión/administración de los repositorios.
Figura 3. Menú de navegación.
3.1 Search -> Find
Esta opción permite realizar búsquedas sobre los repositorios definidos. El resultado mostrado serán artefactos que coincidan con el termino buscado o aquellos artefactos que dependan de él. En esta nueva versión podremos buscar artefactos que contengan una determinada clase, método o paquete, sólo tendremos que incluir en la consulta la palabra bytecode (ejemplo: bytecode:getString).
Figura 4. Búsqueda de artefactos.
3.2 Search -> Find Artifact
Esta opción es muy útil en situaciones donde tenemos artefactos anónimos, sin ninguna información que permita conocer a que versión, grupo, etc... pertenece. Con esta funcionalidad podremos localizar si el artefacto en concreto se encuentra subido en algunos de los repositorios gestionados por Archiva. Esto es posible gracias a que indexa todos los recursos, generando ficheros checksum que ayudan a identificar cada artefacto unívocamente en el repositorio.
Archiva utiliza un applet de Java para generar el checksum local del artefacto que posteriormente será utilizado para localizarlo en los repositorios. Para que funcione, debemos aceptar su ejecución la primera vez que accedamos a "Find Artifact".
Figura 5. Applet de generación de checksum.
Posteriormente adjuntamos el fichero que deseamos buscar en el repositorio y pulsamos sobre "Search". Si el artefacto se encuentra en alguno de los repositorios, Archiva nos redirigirá a él. En caso contrario nos mostrará un mensaje indicándonos que el artefacto no se ha encontrado.
Figura 6. Búsqueda de artefactos.
3.3 Find -> Browse
La última opción dentro del bloque "Find" es "Browse". Con esta opción podremos navegar por todos los grupos y artefactos almacenados en los repositorios.
Figura 7. Navegación por artefactos.
Al acceder al detalle de cualquier artefacto, Archiva, muestra cinco pestañas con información relativa a él: Info, Dependencies, Dependency Tree, Used by y Mailing Lists. En todas ellas, en la parte derecha, tenemos la posibilidad de descargar los recursos que se hayan subido del artefacto (source, artefact, pom.xml, etc...).
En la pestaña info, se muestra información genérica como: grupo, artefacto, versión, tipo de empaquetado y el contenido del fichero pom.xml.
Figura 8. Pestaña Info.
En la pestaña Dependencies se muestra la lista de artefactos de los que depende.
Figura 9. Pestaña Dependencies.
En la pestaña Dependency Tree se muestra la misma información que en la anterior, pero presentando la jerarquía en forma de árbol.
Figura 10. Pestaña Dependency Tree.
En la pestaña "Used By" se muestra la lista artefactos subidos al repositorio que dependen de esta versión.
Figura 11. Pestaña Used By.
Y por último la pestaña "Mailing Lists" donde podemos ver la lista de correos de los desarrolladores si estuvieran definidos en el fichero pom.xml.
Figura 12. Pestaña Mailing lists.
3.4 Manage -> Reports
Archiva permite generar informes sobre problemas en los artefactos almacenados en los repositorios. Los informes que podemos generar son muy limitados, únicamente nos permite filtrar por grupo y repositorio y definir el número de errores por pagina. Otro punto débil es la imposibilidad de generar informes en otro formato que no sea html.
Figura 13. Informes.
3.5 Manage -> User Management
Archiva gestiona el acceso a las diferentes funcionalidades y repositorios con roles, distiguiendo dos tipos: roles de administración de Archiva y roles de acceso a repositorios.
3.5.1 Roles de administración de Archiva
Nos encontramos dos roles que podemos asignar al usuario.
- Administrador de usuarios: capaz de crear, editar y asignar permisos a otros usuarios de la aplicación.
- Administrador de la aplicación: se puede ver como el usuario "root" en un sistema linux. Tiene completo control sobre todas las funcionalidades que archiva nos proporciona.
3.5.2 Roles de acceso a repositorios
Tenemos cuatro roles, dos de ellos que si se activan se aplican sobre todos los repositorios y otros dos que son especificos a cada repositorio.
- Global Repository Observer: con este rol el usuario puede acceder en modo lectura a todos los repositorios y utilizar las opciones Browse y Find.
- Global Repository Manager: el usuario puede acceder en modo lectura/escritura y administrar todos los repositorios definidos.
- Repository Observer: mismo comportamiento del rol "Global Repository Observer", pero aplicable exclusivamente a los repositorios seleccionados por el administrador.
- Repository Manager: mismo comportamiento del rol "Global Repository Manager" pero aplicable exclusivamente a los repositorios selecionados por el administrador.
Figura 14. Gestión de usuarios.
3.6 Manage -> Appearance
Con esta opción se permite al administrador realizar una mínima personalización de la aplicación. Podemos incluir en la parte superior derecha una imagen de la organización.
Figura 15. Personalización de aplicación.
3.7 Manage -> Upload Artifact
Esta opción realiza la misma acción que si utilizaramos el goal "deploy:deploy-file" para subir al repositorio un artefacto.
Figura 16. Subida de artefactos.
3.8 Administration -> Repository Groups
Con esta nueva versión se incorpora un nuevo concepto llamado "Repositorio Virtual", que nos permitirá reunir varios repositorios definidos en la opción "Repositories", corportandose como uno único.
Figura 17. Grupo de Repositorios.
3.9 Administration -> Repositories
Con Archiva podemos configurar dos tipos de repositorios: los gestionados por el propio Archiva y los remotos. Los repositorios gestionados son locales, situados en la misma máquina donde tengamos instalado Archiva, pudiendo ser utilizados como repositorios de despligue de artefactos internos a la organización, o como almacén de artefactos de repositorios de terceros utilizando "Proxy Conectors".
Los repositorios remotos, en cambio, son aquellos donde se almacenan artefactos de terceros no gestionados por nuestro servidor y que están situados remotamente. Los Proxies Conectors nos permiten tener en nuestras instalaciones un mirror bajo demanda de repositorios remotos, es decir, almacenamos en nuestro repositorio local todos los artefactos que sean pedidos a los repositorios remotos. Básicamente un Proxy Conector es un enlace entre un repositorio gestionado y un repositorio remoto. Indicar que Ar