čtvrtek 14. července 2011

Archiva - Artifact Repository Manager

V práci na mě padlo provést aktualizaci Archiva - Artifact Repository Manager http://archiva.apache.org/, což je java aplikace. Něco jako repository pro Linux distribuce, ale Archiva slouží pro Java vývojáře. Aplikace má více rolí a jednou z nich je i Proxy. Jednoduše řečeno vývojáři nemusí ručně stahovat kamsi jednotlivé knihovny. O vše se postará Maven a Archiva. Doposud jsme používali verzi 1.2.2 a nově jsme přešli na aktuální verzi 1.3.5.

Popis prostředí

Jako server pro běh aplikace jsem zvolil Linux Ubunru 10.0.4 LTS 64bit. Aplikace Archiva vyžaduje ke svému běhu web server Apache, Java, Tomcat, Maven a databázi MySQL. Ikdyž existuje i verze Standalone s vlastnim web serverem Jetty. Použíl jsem veryi WAR, která běží pod se deployne v tomcatu.

  • Apache 2.2.14 - ubuntu package + moduly libapache2-mod-jk a libapache2-mod-macro
  • Java 1.6.0_26 64bit - instalována manuálně
  • Tomcat 6.0.26 - instalován manuálně
  • Maven 2.2.1 - instalována manuálně
  • MySQL 5.1.41 - ubuntu package
  • Archiva 1.3.5 - instalována manuálně
Konfigurace

Apache

Nastavení webserveru apache2 jsem řešil dle balíčkové konfigurace.

apt-get install cronolog
apt-get install apache2 libapache2-mod-macro libapache2-mod-jk

joe /etc/apache2/envvars
export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data
export APACHE_PID_FILE=/var/run/apache2.pid
export APACHE_ARGUMENTS="-Don -Dtrue -Dyes"
export APACHE_FG_INSTANCE_NAME="apache01"

joe /etc/apache2/ports.conf
NameVirtualHost 80.250.16.10:80
Listen 80.250.16.10:80

cd /etc/apache2/mods-enabled
ln -s ../mods-available/rewrite.load ./
ln -s ../mods-available/headers.load ./
ln -s ../mods-available/include.load ./
ln -s ../mods-available/info.conf ./
ln -s ../mods-available/info.load ./
ln -s ../mods-available/macro.load ./
ln -s ../mods-available/macro.conf ./

joe info.conf
joe status.conf
joe jk.conf
joe macro.conf

cd /etc/apache2/sites-
joe default
joe archiva

cd /www/
mkdir -p server_log/apache01/log/

/etc/init.d/apache2 restart


Tomcat

Tomcat byl instalován dle zvyklostí.

ubuntu:~/install/tomcat-6.0.26&gt ./install-tomcat.sh
Instaled 1 Tomcast's
Install tomcat01 ...
patching file catalina.sh
patching file setclasspath.sh
patching file server.xml
patching file tomcat-users.xml

Důležité nastavení je v těchto souborech.

cd /www/server/tomcat01/apache-tomcat
joe bin/setclasspath.sh
...
## Archiva
export CATALINA_OPTS="-Dappserver.home=/www/java/archiva-home -Dappserver.base=/www/java/archiva-home"

joe conf/server.xml

Archiva vyžaduje doinstalovat pár knihoven do tomcat lib

ubuntu:/www/server/tomcat01/apache-tomcat> cat lib/readme-lml.txt
Pridal jsem soubory (jsou potreba pro aplikaci Archiva):
activation-1.1.jar
derby-10.1.3.1.jar
derbytools-10.1.3.1.jar
mail-1.4.jar
mysql-connector-java-5.1.5.jar


Archiva

Je umístěna v adresáři

ubuntu:/www/java/> ls -1
archiva # link na aktualni verzi
archiva-1.2.2 # stara verze
archiva-1.3.5 # aktualni verze
archiva-home # repo conf log atd.

Další konfigurák je v conf adresáři Maven .m2

ubuntu:~/.m2> ls -1
archiva
archiva.xml
repository
settings.xml


Tyto záznamy jsou vesměs pro mě. Podrobně je vše zdokumentováno na tránkách projektu. Pokud bude zájem ještě mám v plánu archivu dokonfigurovat, aby se autentizovala oproti LDAPu.

Ještě malá poznámka na závěr. Verze 1.3.5 nevyžadovala žádné úpravy MySQL tabulek. Udělal jsem dump a ten nalil na nový server, kam jsem aplikaci stěhoval i s archiva-home a vše běží jak má. Na stěhování repo jsem užil rsync.

Žádné komentáře: