Artifactory es un Repositorio de Maven 2, este sirve como Proxy cache de los repositorios de maven y ademas tambien sirve como repositorio para los propios artefactos desarrollados por los programadores o empresa en el caso donde lo aplique. Esta basado en JCR (usando JackRabbit como implementacion) para guardar los artefactos y administracion de los metadatos (xml). Tiene una UI basada en wicket y usa jetty para una implementacion rapida (tambien se puede implementar sobre tomcat).
Es una aplicacion muy interesante si se usa mucho maven para los proyectos en java ya que este se baja las dependencias de internet y si tenemos unas 80 o mas personas usando la conexion a internet y nuestro ancho de banda esta colapsado todo se pone bastante lento, asi que es una opcion interesante para cachear todos los artefactos que se van usando en los proyectos y ademas nos permite subir los producidos por nosotros mismos. La web de administracion es bien ausera, lo suficiente para hacer lo que necesitamos, sin complicaciones, solo hay que tener idea de lo que queremos hacer, pero en un par de horas sale andado! Para que no se ponga celoso esto lo puse en produccion en la empresa con la ayuda de Gaston (java developer) el cual me explico mas o menos como funciona maven y me dio una mano para testearlo.
Vamos a la Instalación (todo con usuario root).
Prerequisitos:
Tenemos que tener la jdk 1.5 o mayor de java instalada y JAVA_HOME definida.
Descargamos la jdk de la pagina oficial de sun y lo descomprimimos en /opt
Instalar Artifactory:
Descargamos artifactory de la pagina oficial y lo descomprimimos en /opt
Una vez hecho esto fijamos las variables de entorno en el archivo .bashrc de root para correr la aplicacion,
mcedit /root/.bashrc
agregamos lo siguiente al final el archivo:
export ARTIFACTORY_HOME=/opt/artifactory-1.2.2
export JAVA_HOME=/opt/jdk1.5.0_12
una vez hecho esto editamos el archivo jetty.xml:
mcedit $ARTIFACTORY_HOME/etc/jetty.xml
buscamos esta linea:
<set name="port"><systemproperty name="jetty.port" default="8080"></systemproperty></set>
y la cambiamos por:
<set name="port"><systemproperty name="jetty.port" default="8081"></systemproperty></set>
para cambiar el puerto donde levanta el servicio.
Una vez hecho esto solo queda iniciar el servicio y loguear (user: admin y password: password)
cd $ARTIFACTORY_HOME/bin
artifactoryctl start
podemos agregar repositorios en el archivo de configuracion artifactory.config.xml como por ej en nuestro caso agregamos OpenQA.
mcedit $ARTIFACTORY_HOME/etc/artifactory.config.xml
y agregamos el repo que necesitemos:
<remoteRepository>
<key>OpenQA</key>
<description>OpenQA</description>
<handleReleases>true</handleReleases>
<handleSnapshots>true</handleSnapshots>
<excludesPattern>org/artifactory/**,org/jfrog/**</excludesPattern>
<url>http://maven.openqa.org</url>
</remoteRepository>
Una vez hecho esto reiniciamos el servicio y listo.
Para agregar nuestros propios artefactos hay que hacerlo via interfaz web, solo con subir el jar (si esta bien hecho) alcanza.
Luego debermos agregar lo siguiente en el pom.xml del proyecto para utilizar el proxy.
<repositories>
<repository>
<id>central</id>
<url>http://[your server name]:[port]/artifactory/repo</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>snapshots</id>
<url>http://[your server name]:[port]/artifactory/repo</url>
<releases>
<enabled>false</enabled>
</releases>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>central</id>
<url>http://[your server name]:[port]/artifactory/plugins-releases</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</pluginRepository>
<pluginRepository>
<id>snapshots</id>
<url>http://[your server name]:[port]/artifactory/plugins-snapshots</url>
<releases>
<enabled>false</enabled>
</releases>
</pluginRepository>
</pluginRepositories>
Y listo, ya estamos usando artifactory!
english
español