Categorías del Tutorial

icono_twiter
Jose Manuel Sánchez Suárez

Consultor tecnológico de desarrollo de proyectos informáticos.

Puedes encontrarme en Autentia: Ofrecemos servicios de soporte a desarrollo, factoría y formación

Somos expertos en Java/J2EE

Ver todos los tutoriales del autor

Fecha de publicación del tutorial: 2012-07-31

Tutorial visitado 1.886 veces Descargar en PDF
Arrancar Solr desde un proyecto Maven con el soporte de Jetty.

Arrancar Solr desde un proyecto Maven con el soporte de Jetty.


0. Índice de contenidos.


1. Introducción

¿Cuándo empieza a ser productivo un nuevo miembro del equipo?, dependerá de la persona y de la experiencia con la tecnología en la que esté basada la arquitectura del proyecto. Aun lo anterior, siempre existe el factor "montar el entorno", ¿cuánto se tarda de media en montar el entorno?, ¿se puede hacer de forma autónoma o necesita el soporte de alguien que lo tenga montado?.

En Autentia siempre tratamos de minimizar los procesos de adaptación entre proyectos porque básicamente tenemos bastante movilidad y, en este tutorial, vamos a ver cómo trabajar con una instancia de Solr montada en un proyecto de maven para evitar tener que montar en local un servidor y desplegar Solr manualmente cada vez que alguien se tiene que montar el entorno de un proyecto que utiliza este motor de indexación. Si lo dejamos en manos de los miembros del equipo corremos el riesgo de instalaciones dispares con frases del tipo "pues esto a mi me funciona, no se por qué a ti no", "¿no has copiado en el directorio local el fichero de configuración?".

La idea es que el proyecto con el servidor de Solr y su configuración se encuentren en el repositorio y solo haya que hacer un checkout para empezar a trabajar con él.


2. Entorno.

El tutorial está escrito usando el siguiente entorno:

  • Hardware: Portátil MacBook Pro 15' (2.4 GHz Intel Core i7, 8GB DDR3 SDRAM).
  • Sistema Operativo: Mac OS X Lion 10.7.4
  • Solr 3.5

3. Configuración.

Ya hemos comentado que tendremos un proyecto específico de maven para el servidor que tendrá las dependencias de Solr y la configuración del mismo, con ello, todo el equipo trabajará, en local, sobre la misma versión y con la misma configuración; al igual que haríamos con la instancia de la base de datos.

El contenido de nuestro pom.xml sería el siguiente:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.autentia.tutoriales</groupId>
  <artifactId>solr-server</artifactId>
  <version>0.0.1-SNAPSHOT</version> 
  <packaging>war</packaging>
  <dependencies>
        <dependency>
            <groupId>org.apache.solr</groupId>
            <artifactId>solr</artifactId>
            <type>war</type>
            <version>3.5.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.solr</groupId>
            <artifactId>solr-velocity</artifactId>
            <version>3.5.0</version>
        </dependency>
  </dependencies>
  <build>
  <finalName>solr</finalName>
    <plugins>
       <plugin>
         <groupId>org.mortbay.jetty</groupId>
         <artifactId>maven-jetty-plugin</artifactId>
         <version>6.1.26</version>
           <configuration>
               <connectors>
                   <connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
                       <port>8989</port>
                       <maxIdleTime>60000</maxIdleTime>
                   </connector>
               </connectors>
              <webAppConfig>
				<contextPath>/solr</contextPath>
              </webAppConfig>
           </configuration>
       </plugin>
    </plugins>
  </build>
</project>

Los ficheros de configuración propios de solr los podemos ubicar en el directorio src/main/resources y debemos crear el directorio webapp/WEB-INF para insertar el web.xml del solr.war que podemos obtener descargando la versión de solr con la que vayamos a trabajar.

La estructura de directorios de nuestro proyecto sería la siguiente:

Esta configuración la hacemos una única vez y la subimos al repositorio para que el resto del equipo trabaje sobre la misma en local; si necesitamos ampliar el esquema de solr o configurar múltiples cores, modificaremos los ficheros de configuración de este proyecto.


4. Arrancar Solr.

En el directorio raíz del proyecto, primero probamos a empaquetarlo y, con ello, se descargará las dependencias.

	mvn clean install

Si todo va bien, después desplegamos el war en el jetty embebido:

	mvn jetty:run-exploded

El resultado debería ser algo como lo siguiente:

Y ya podemos abrir un navegador para accerder a la url de solr: http://localhost:8989/solr/

Por defecto el directorio home de solr se crea en la raíz del proyecto en el {basedir}.

Podemos modificar este comportamiento definiendo en el web.xml que hemos tomado prestado del solr.war la siguiente sección:


  
    solr/home
    target
    java.lang.String
  

Con ello, el directorio data, con el contenido de los índices se creará dentro del directorio de target.


5. Referencias.


6. Conclusiones.

Automatizado queda ;).

Un saludo.

Jose

jmsanchez@autentia.com

A continuación puedes evaluarlo:

Regístrate para evaluarlo

Por favor, vota +1 o compártelo si te pareció interesante

Share |
Anímate y coméntanos lo que pienses sobre este TUTORIAL: