Archiva es una aplicación que permite la gestión de repositorios, principalmente es utilizada para:
- el mantenimiento de repositorios
- la navegación y búsqueda de artefactos
- la gestión de la seguridad
En este artículo abordaremos la instalación de Archiva en una distribución Gentoo de Linux. Todas las operaciones serán hechas como usuario
root.
Instalación de JDK y tomcat
Esta instalación será hecha con
JDK-1.5.0_16 y
tomcat-5.5.26, la elección de la versión de JDK es hecha teniendo en cuenta la dependencia de versión entre JDK y tomcat según la estructura del portage.
Instalación de JDK-1.5.0_16
Para instalar el jdk, ejecutamos el siguiente comando:
emerge –av =dev-java/sun-jdk-1.5.0.16
Luego respondemos con “yes”.
Instalación de tomcat-5.5.26
Para instalar
tomcast, ejecutamos el siguiente comando:
emerge -av = www-servers/tomcat-5.5.26
Luego, respondemos con “yes”.
Instalación de Archiva
La instalación será hecha con la versión 1.1 de Archiva
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<version>2</version>
<repositoryScanning>
<fileTypes>
<fileType>
<id>artifacts</id>
<patterns>
<pattern>**/*.pom</pattern>
<pattern>**/*.jar</pattern>
<pattern>**/*.ear</pattern>
<pattern>**/*.war</pattern>
<pattern>**/*.car</pattern>
<pattern>**/*.sar</pattern>
<pattern>**/*.mar</pattern>
<pattern>**/*.rar</pattern>
<pattern>**/*.dtd</pattern>
<pattern>**/*.tld</pattern>
<pattern>**/*.tar.gz</pattern>
<pattern>**/*.tar.bz2</pattern>
<pattern>**/*.zip</pattern>
</patterns>
</fileType>
<fileType>
<id>indexable-content</id>
<patterns>
<pattern>**/*.txt</pattern>
<pattern>**/*.TXT</pattern>
<pattern>**/*.block</pattern>
<pattern>**/*.config</pattern>
<pattern>**/*.pom</pattern>
<pattern>**/*.xml</pattern>
<pattern>**/*.xsd</pattern>
<pattern>**/*.dtd</pattern>
<pattern>**/*.tld</pattern>
</patterns>
</fileType>
<fileType>
<id>auto-remove</id>
<patterns>
<pattern>**/*.bak</pattern>
<pattern>**/*~</pattern>
<pattern>**/*-</pattern>
</patterns>
</fileType>
<fileType>
<id>ignored</id>
<patterns>
<pattern>**/.htaccess</pattern>
<pattern>**/KEYS</pattern>
<pattern>**/*.rb</pattern>
<pattern>**/*.sh</pattern>
<pattern>**/.svn/**</pattern>
<pattern>**/.DAV/**</pattern>
<pattern>**/.index/**</pattern>
</patterns>
</fileType>
</fileTypes>
<knownContentConsumers>
<knownContentConsumer>auto-remove</knownContentConsumer>
<knownContentConsumer>auto-rename</knownContentConsumer>
<knownContentConsumer>create-missing-checksums</knownContentConsumer>
<knownContentConsumer>index-content</knownContentConsumer>
<knownContentConsumer>metadata-updater</knownContentConsumer>
<knownContentConsumer>repository-purge</knownContentConsumer>
<knownContentConsumer>update-db-artifact</knownContentConsumer>
</knownContentConsumers>
<invalidContentConsumers>
<invalidContentConsumer>update-db-bad-content</invalidContentConsumer>
</invalidContentConsumers>
</repositoryScanning>
<databaseScanning>
<cronExpression>0 * * * * ?</cronExpression>
<unprocessedConsumers>
<unprocessedConsumer>validate-repository-metadata</unprocessedConsumer>
<unprocessedConsumer>index-archive-toc</unprocessedConsumer>
<unprocessedConsumer>index-artifact</unprocessedConsumer>
<unprocessedConsumer>update-db-project</unprocessedConsumer>
<unprocessedConsumer>index-public-methods</unprocessedConsumer>
<unprocessedConsumer>update-db-bytecode-stats</unprocessedConsumer>
</unprocessedConsumers>
<cleanupConsumers>
<cleanupConsumer>not-present-remove-db-artifact</cleanupConsumer>
<cleanupConsumer>not-present-remove-indexed</cleanupConsumer>
<cleanupConsumer>not-present-remove-db-project</cleanupConsumer>
</cleanupConsumers>
</databaseScanning>
<managedRepositories>
<managedRepository>
<location>/data/repositories/internal</location>
<indexDir></indexDir>
<refreshCronExpression>0 * * * * ?</refreshCronExpression>
<retentionCount>5</retentionCount>
<id>internal</id>
<name>Almerys Archiva Managed Internal Repository</name>
</managedRepository>
<managedRepository>
<location>/data/repositories/internal.snapshot</location>
<releases>false</releases>
<snapshots>true</snapshots>
<indexDir></indexDir>
<refreshCronExpression>0 * * * * ?</refreshCronExpression>
<daysOlder>10</daysOlder>
<deleteReleasedSnapshots>true</deleteReleasedSnapshots>
<id>internal.snapshot</id>
<name>Almerys Archiva Managed Internal Snapshot Repository</name>
</managedRepository>
<managedRepository>
<location>/data/repositories/external</location>
<indexDir></indexDir>
<refreshCronExpression>0 * * * * ?</refreshCronExpression>
<id>external</id>
<name>Owliance Official Maven repo</name>
</managedRepository>
</managedRepositories>
<remoteRepositories>
<remoteRepository>
<url>http://repo1.maven.org/maven2/</url>
<id>Maven.repo</id>
<name>Official Maven repository</name>
</remoteRepository>
<remoteRepository>
<url>http://download.java.net/maven/2/</url>
<id>maven2-repository.dev.java.net</id>
<name>Java.net Repository for Maven</name>
</remoteRepository>
<remoteRepository>
<url>http://maven2.exoplatform.org/rest/maven2</url>
<id>maven2.exoplatform.org</id>
<name>eXo Platform Repository for Maven</name>
</remoteRepository>
<remoteRepository>
<url>https://www.partenaires.almerys.com/archiva/repository/internal</url>
<username></username>
<password></password>
<id>internal.central</id>
<name>Almerys Archiva Managed Internal Repository</name>
</remoteRepository>
</remoteRepositories>
<proxyConnectors>
<proxyConnector>
<order>1</order>
<sourceRepoId>external</sourceRepoId>
<targetRepoId>maven2-repository.dev.java.net</targetRepoId>
<policies>
<releases>hourly</releases>
<checksum>fix</checksum>
<snapshots>hourly</snapshots>
<cache-failures>no</cache-failures>
</policies>
</proxyConnector>
<proxyConnector>
<order>2</order>
<sourceRepoId>external</sourceRepoId>
<targetRepoId>maven2.exoplatform.org</targetRepoId>
<policies>
<releases>hourly</releases>
<checksum>fix</checksum>
<snapshots>hourly</snapshots>
<cache-failures>no</cache-failures>
</policies>
</proxyConnector>
<proxyConnector>
<order>1</order>
<sourceRepoId>internal</sourceRepoId>
<targetRepoId>internal.central</targetRepoId>
<proxyId>(direct connection)</proxyId>
<policies>
<releases>hourly</releases>
<checksum>fix</checksum>
<snapshots>hourly</snapshots>
<cache-failures>no</cache-failures>
</policies>
</proxyConnector>
<proxyConnector>
<order>3</order>
<sourceRepoId>external</sourceRepoId>
<targetRepoId>Maven.repo</targetRepoId>
<policies>
<releases>hourly</releases>
<checksum>fix</checksum>
<snapshots>hourly</snapshots>
<cache-failures>no</cache-failures>
</policies>
</proxyConnector>
</proxyConnectors>
</configuration>
- En /usr/share/tomcat-5.5/common/lib agregamos estos jars:
- activation-1.1.jar
- derby-10.1.3.1.jar
- mail-1.4.jar
Estos jars son agregados
- En /usr/share/tomcat-5.5/common/lib, agregamos el jar tomcat-dbcp.jar, este jar lo podemos descargar de Aquí
- En /usr/share/tomcat-5.5/common/endorsed, eliminamos el jar xml-apis.jar
- Utilizando un editor de texto, agregamos al fichero /etc/init.d/tomcat-5.5 esta línea:
- CATALINA_OPTS="-Dappserver.home="$CATALINA_HOME" -Dappserver.base="$CATALINA_HOME" -Xmx512m -Dderby.system.home="$CATALINA_HOME
Esta línea debe ser agregada al procedimiento “start()” antes del llamado de “init_env_vars”.
- Una vez ejecutada la aplicación con éxito, el fichero “archiva.xml” situado en la carpeta /etc/tomcat-5.5/Catalina/localhost debe ser reemplazado por el fichero “archiva.xml”, este fichero se encuentra en el proyecto CVS Archiva_Config
- Reiniciamos tomcat
Configuración de Archiva
- En la raíz /, creamos la carpeta data y la asignamos al usuario tomcat utilizando el comando:
chown -R tomcat:tomcat /data/
- Creamos una carpeta para el usuario tomcat, /home/tomcat, luego ejecutamos
chown -R tomcat:tomcat /home/tomcat/
- Lo asignamos como carpeta por defecto al usuario “tomcat” utilizando el comando:
usermod –d /home/tomcat tomcat
- En /home/tomcat, creamos la carpeta .m2, en esta carpeta copiamos el fichero “archiva-config-distant.xml” con el nombre de archiva.xml.
Y listo! La aplicación Archiva está lista para ser utilizada por los miembros del equipo
Véase también
Comunidad de asistencia y consejos.
El artículo original fue escrito por
wjaouadi. Traducido por
Carlos-vialfa.