En la anterior entrada, decía cómo instalar Apache Archiva bajo Tomcat6 utilizando la base de datos Derby como gestor. En esta entrada, finalizaré la instalación indicando cómo hacer para que Archiva conecte con MySQL y daré los primeros pasos con Apache Archiva.

Configuración con MySQL

En primer lugar, debemos disponer de un sistema de base de datos MySQL ya instalado. Si no lo tenemos instalado, debemos ejecutar el siguiente comando:

$ sudo apt-get install mysql-server-5.1 mysql-client-5.1

A continuación, creamos una base de datos y un usuario exclusivos para Archiva:

$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 73
Server version: 5.1.41-3ubuntu12.3 (Ubuntu)

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> create database archiva;
Query OK, 1 row affected (0.07 sec)

mysql> use archiva;
Database changed

mysql> grant all privileges on archiva.* to archiva identified by 'archivapass';
Query OK, 0 rows affected (0.02 sec)

mysql> exit
Bye

Con este paso, tenemos una base de datos “archiva” y un usuario “archiva” con todos los permisos hacia la misma.

Por último, necesitamos indicar a Archiva que se conecte con esta nueva tabla, pero previamente debemos instalar el driver JDBC de MySQL:

$ sudo su -
# apt-get install libmysql-java
# cd /usr/share/tomcat6/lib
# ln -s ../../java/mysql-connector-java.jar

Editamos la configuración de Archiva en Tomcat6 (archivo “/var/lib/tomcat6/conf/Catalina/localhost/archiva.xml”), comentando las entradas correspondientes a la conexión de base de datos Derby e incluyendo la conexión a MySQL. El archivo quedaría como éste:

<?xml version="1.0" encoding="UTF-8"?>
<Context path="/archiva"
         docBase="${catalina.base}/archiva/apache-archiva-1.3.1.war">

<!--
<Resource name="jdbc/users" auth="Container" type="javax.sql.DataSource"
    username="sa"
    password=""
    driverClassName="org.apache.derby.jdbc.EmbeddedDriver"
    url="jdbc:derby:${catalina.base}/archiva/database/users;create=true" />

<Resource name="jdbc/archiva" auth="Container" type="javax.sql.DataSource"
    username="sa"
    password=""
    driverClassName="org.apache.derby.jdbc.EmbeddedDriver"
    url="jdbc:derby:${catalina.base}/archiva/database/archiva;create=true" />
-->

<Resource name="jdbc/users" auth="Container" type="javax.sql.DataSource"
    username="archiva"
    password="archivapass"
    driverClassName="com.mysql.jdbc.Driver"
    url="jdbc:mysql://localhost:3306/archiva?autoReconnect=true" />

<Resource name="jdbc/archiva" auth="Container" type="javax.sql.DataSource"
    username="archiva"
    password="archivapass"
    driverClassName="com.mysql.jdbc.Driver"
    url="jdbc:mysql://localhost:3306/archiva?autoReconnect=true" />

<Resource name="mail/Session" auth="Container"
    type="javax.mail.Session"
    mail.smtp.host="localhost"/>

</Context>

Para terminar la instalación, debemos crear el directorio .m2 en el directorio del usuario tomcat6, de forma que Archiva la procese (y para que también podamos editarla desde la página de administración Archiva):

$ sudo mkdir ~tomcat6/.m2
$ sudo chown tomcat6:tomcat6 -R ~tomcat6/.m2

Ahora podemos reiniciar Tomcat y utilizar Apache Archiva como nuestro servidor de repositorio.

Conexión a Apache Archiva – Creación de usuario administrador

La primera vez que nos conectamos a Apache Archiva, éste genera las tablas necesarias en la base de datos y nos solicita la creación del usuario administrador:

Apache Archiva - Create Admin User

Una vez creado el usuario, nos aparecerá la página de búsqueda:

Apache Archiva: Search

Configuración de Repositorios

Una vez finalizada la instalación y configuración “base”, debemos incluir algunos repositorios de Maven 2 para que Archiva actúe de “proxy” hacia ellos, de forma que nosotros nos conectemos únicamente a Archiva y sea éste el que se encargue de descargar los archivos que necesitemos de los repositorios externos.

Para ello, desde la página de búsqueda, vista anteriormente, pulsaremos sobre el botón de “Repositories”. Aquí nos aparecerán los repositorios manejados (“Managed Repositories”) por defecto:

  • Archiva Managed Internal Repository.
  • Archiva Managed Snapshot Repository.

y dos repositorios remotos:

  • Central Repository.
  • Java.net Repository for Maven 2.

Lo primero que debemos hacer es modificar la configuración de los directorios dos repositorios manejados, de forma que los directorios estén bajo “/var/lib/tomcat6/archiva/repositories”. Para ello, sobre cada uno, pulsamos en el botón “Edit” y modificamos el parámetro:

Apache Archiva: Admin: Edit Managed Repository

Una vez actualizados, pulsaremos sobre el botón “Add” en el apartado de “Remote Repositories”, añadiendo nuevos repositorios remotos:

Apache Archiva: Admin: Add Remote Repository

Y así, añadimos los siguientes repositorios:

  • Codehaus: http://repository.codehaus.org/.
  • JBoss: http://repository.jboss.org/maven2/. Actualización (02/08/2010): JBoss ha dispuesto otro repositorio: http://repository.jboss.org/nexus/content/groups/public/.
  • IBiblio: http://mirrors.ibiblio.org/pub/mirrors/maven2/.
  • Spring: http://s3.amazonaws.com/maven.springframework.org/release.

quedando del siguiente modo:

Apache Archiva: Administration - Repositories

Configuración de conexiones de los repositorios

Una vez que hemos añadido los repositorios remotos, hemos de indicar para qué paquetes Java utilizaremos cada uno de estos repositorios. Pulsamos sobre el enlace “Proxy Connectors” y a continuación sobre el botón “Add”. Éste es el ejemplo para añadir el repositorio de Codehaus:

Apache Archiva: Admin: Add Proxy Connector

Nótese que hemos indicado el paquete “org/codehaus/**” en la “White List”, es decir, estamos indicando que se utilizará este repositorio remoto únicamente para descargar “artefactos” / librerías que cumplan este formato (cuyo groupId sea éste o esté compuesto por éste).

La configuración completa de todos los repositorios remotos, así como edición del repositorio “Java.net Repository for Maven 2″ para añadirle en la “White List” el paquete “javolution/**” es ésta:

Apache Archiva: Administration - Proxy Connectors

Configuración de Maven2 para conexión con Archiva

Una vez que tenemos Apache Archiva funcionando, podemos configurar Maven2 para que lo utilice como repositorio de todos los paquetes necesarios en nuestros desarrollos, para lo cual, editamos nuestro archivo de configuración de Maven2 situado en nuestro directorio “.m2″ de nuestro usuario, dejándolo de este modo:

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<!--
    <localRepository/>
    <interactiveMode>true</interactiveMode>
    <usePluginRegistry/>
    <offline>false</offline>
    <pluginGroups/>
    <servers/>
-->
    <mirrors>
        <mirror>
            <id>internal</id>
            <name>Archiva Managed Internal Repository</name>
            <url>http://hostname:8080/archiva/repository/internal</url>
            <mirrorOf>*</mirrorOf>
        </mirror>
    </mirrors>
<!--
    <proxies/>
    <profiles/>
    <activeProfiles/>
-->
</settings>

* Este archivo se muestra a modo de ejemplo ya que, en realidad, únicamente hace falta añadir la parte relativa a “mirror”; el resto, debe configurarse en función de las necesidades de cada usuario.
** Se debe sustituir la palabra “hostname” por el nombre o IP del servidor real de Apache Archiva.

Compartir:
  • Digg
  • del.icio.us
  • Facebook
  • Twitter
  • Google Bookmarks
  • BarraPunto
  • Google Buzz
  • LinkedIn
  • Meneame
  • Print

No hay entradas relacionadas.