Compilando la última versión de Jboss/Wildfly desde código fuente

By | November 19, 2015

La última versión disponible no tiene por qué ser la más estable, pero si queremos probar nuevas funcionalidades o tener entornos de testeo con las últimas versiones, la solución es bastante fácil: el código fuente del proyecto lo tenemos alojado en GitHub. A partir de ahí, sólo es necesario ponernos manos a la obra para compilarlo.

Requisitos

Necesitaremos JDK 1.8 (en Oracle podemos conseguirla fácilmente, aunque también nos sirve equivalente OpenJDK), Maven y GIT, que podemos instalar fácilmente con apt-get:

#Debian y derivadas
apt-get install maven git
#RHEL y derivadas
yum install maven git

Compilando desde fuentes

Creamos un directorio donde vamos a clonar el repositorio del proyecto de GitHub:

mkdir jbosscomp

Clonamos el repo dentro de ese directorio:

cd jbosscomp
git clone https://github.com/wildfly/wildfly.git

Ahora dentro podremos ejecutar el script build.sh (o build.bat para Windows) que vendrá en el repo que hemos clonado para compilar Jboss. Antes de instalar es recomendable hacer algunos “smoke tests” que podéis ver bajo el epígrafe “running the Testsuite” del README que tienen en el repositorio. Para ejecutarlos todos (esto es opcional):

./build.sh install -DallTests -Drelease=true

Ármate de paciencia porque es un proceso que lleva bastante tiempo (+20 minutos).

Para compilar sin necesidad de pasar los tests podemos hacer lo siguiente:

./build.sh install -Dmaven.test.skip=true -Drelease=true

Tardará bastante menos en compilar Jboss, aunque no podremos tener la certeza de que algún componente o subsistema esté libre de errores. Si todo ha salido bien veremos:

Tendremos los binarios de nuestro Jboss compilado en:

build/target/wildfly-VERSION/

Por ejemplo en el caso de mis pruebas en build/target/wildfly-10.0.0.CR5-SNAPSHOT/

¿Cómo cambiar la ruta de destino (target) de la compilación?

Ya hemos visto que por defecto los binarios compilados quedan en build/target/wildfly-VERSION/. Podemos especificar una ruta personalizada. Para ello buscaremos el fichero pom.xml en el directorio build. Encontraremos la siguiente línea:

<outputDirectory>${project.build.directory}</outputDirectory>

Podemos sustituir el valor por la localización que deseemos. Los binarios compilados irán a parar al target especificado. Por ejemplo:

<outputDirectory>/opt/jboss/build/</outputDirectory>

Ahora tras compilar tendremos los binarios dentro del directorio /opt/jboss/build/

Probando los binarios

Podemos probar a iniciarlo y realizar algunas pruebas:

cd build/target/wildfly-10.0.0.CR5-SNAPSHOT/bin

Y una vez aquí probar a ejecutarlo en standalone o modo dominio:

./standalone.sh
./domain.sh

Deberíamos ver que por lo menos inicia correctamente:

NOTA: Wildfly es la versión “comunitaria” de Jboss Application Server de toda la vida. La versión que tiene soporte (previo pago) de Red Hat sigue llamándose Jboss EAP.