Configuración de Maven y Git en OSB 12.2.1

Por Sandra Flores
Publicado en Noviembre 2016

A partir de la versión 12c de Fusion Middleware, Oracle provee soporte para el uso de Maven, no solo para facilitarnos algunas tareas como compilación, empaquetado, pruebas y despliegue de proyectos OSB y BPEL, sino que además, para complementar una estrategia de integración continua en la entrega de los mismos.

Oracle proporciona apoyo a las organizaciones que adoptan estas técnicas de integración continua para desarrollar aplicaciones en la plataforma de OFMW. En concreto, se establece lo siguiente:

  • Integración con sistemas de control de versión comunes desde JDeveloper.
  • Capacidad de construir proyectos desde línea de comandos usando Maven, es decir, un sistema de compilación y gestión de proyectos, que puede ser automatizado por medio de scripts.
  • Capacidad de crear nuevos proyectos basados en Arquetipos Maven.
  • Posibilidad de parametrizar los proyectos de tal manera que la construcción pueda dirigirse a diferentes ambientes, como pruebas, control de calidad, SIT, y producción.
  • Posibilidad de incluir pruebas de los proyectos en el ciclo de vida de construcción de Maven.
  • Capacidad para poblar un repositorio Maven con dependencias proporcionadas por Oracle desde un directorio de instalación local de Oracle.
  • Capacidad de ejecutar Maven bajo el control de un servidor de integración continua, tal como Hudson.

Por otra parte, Maven proporciona gestión de proyectos en términos de:

  • Denominación y control de versiones.
  • Dependencias.
  • Donde se almacena el código fuente.
  • Donde se almacenan los proyectos compilados.
  • Plantillas para los tipos de proyectos.
  • Proceso de liberación.

Y gestión de construcción en términos de:

  • Cómo ejecutar la construcción.
  • Las actividades a realizar en cada fase.
  • La parametrización de la construcción.
  • Un marco extensible.

En este artículo encontrarás la forma de configurar el plugin de Maven para JDeveloper y línea de comando, para usarlo en un proyecto OSB en la versión 12.2.1 y finalmente configurar la conexión con un repositorio de Git, todo esto en Sistema Operativo Windows 8.

Para comenzar, es necesario descargar el software de Maven, a partir de la versión 3.0.5, de la página de Apache:

https://maven.apache.org/download.cgi

O bien, puedes usar la distribución que está incluida en la instalación de Weblogic en la carpeta:

ORACLE_HOME/oracle_common/modules/org.apache.maven_3.0.5

 

Descomprimir el archivo, y agregar a la variable de sistema PATH la ubicación de la carpeta bin. Adicional a ésta, es necesario tener establecida la variable JAVA_HOME con la ruta de instalación del jdk.



Para corroborar que está correcta la instalación, abrir una consola de línea de comandos, ubicarse en la ruta que recién agregamos al PATH y ejecutar el comando mvn, debe obtenerse un error como el que se muestra a continuación:



El siguiente paso es configurar el repositorio de Maven. Para esto, editar el archivo settings.xml ubicado en la ruta $USER_HOME/.m2. Aquí modificaremos 3 secciones importantes: proxies, servers y profiles.

La sección proxies, solo se debe modificar en caso de ser necesario, si la conexión a internet no es por medio de un proxy, entonces no se debe cambiar.

Para la sección servers, es necesario tener una cuenta activa en Oracle.

Nótese que en ambas configuraciones se están usando passwords encriptados, si no deseas hacerlo de esta forma, puedes especificarlos en claro. Al final del artículo encontrarás los pasos para realizar la encriptación con Maven.

<?xml version="1.0" encoding="UTF-8"?>
<settings xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd" 
xmlns="http://maven.apache.org/SETTINGS/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<proxies>   
<proxy>      
<id>proxy</id>      
<active>true</active>      
<protocol>https</protocol>      
<host>XXX.XXX.XXX.XX</host>      
<port>XXXX</port>      
<username>username</username>      
<password>{k1fFU6qRp5lsiahd2yDk+uOcmnYPiJ9ugarwDRSj4d6ue235rpwF+k=}</password>      
<nonProxyHosts>*.local</nonProxyHosts>    
</proxy>  
</proxies>
<servers>
<server>
<id>maven.oracle.com</id>
<username>cuenta@server.com</username>
<password>{7LjnYmshdsfgd5xyVF+6hat4Pn6ARDapaHHfxJ1TP23YfbJ552W99Q=}</password>
<configuration>
<basicAuthScope>
<host>ANY</host>
<port>ANY</port>
<realm>OAM 11g</realm>
</basicAuthScope>
<httpConfiguration>
<all>
<params>
<property>
<name>http.protocol.allow-circular-redirects</name>
<value>%b,true</value>
</property>
</params>
</all>
</httpConfiguration>
</configuration>
</server>
 </servers>
 <profiles>
<profile>
<repositories>
<repository>
<id>maven.oracle.com</id>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
<url>https://maven.oracle.com</url>
<layout>default</layout>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>maven.oracle.com</id>
<url>https://maven.oracle.com</url>
</pluginRepository>
</pluginRepositories>
</profile>
<profile>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<repositories/>
</profile>
</profiles>
</settings>

 

Ahora es necesario modificar el archivo pom.xml del proyecto OSB, éste lo encontrarás en la carpeta raíz del proyecto.



Es importante cambiar la versión del proyecto a 12.2.1.0-0. Además del repositorio que creamos en el paso anterior y el plugin del repositorio.

<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"
xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.oracle.servicebus</groupId>
<artifactId>sbar-project-common</artifactId>
<version>12.2.1-0-0</version>
</parent>
<groupId>BlogOSBApplication</groupId>
<artifactId>Persona</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>sbar</packaging>
<description></description>
<repositories>
<repository>
<id>maven.oracle.com</id>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
<url>https://maven.oracle.com</url>
<layout>default</layout>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>maven.oracle.com</id>
<url>https://maven.oracle.com</url>
</pluginRepository>
</pluginRepositories>
</project>
 

Será necesario iniciar sesión con la cuenta de Oracle que se está usando en el archivo settings.xml,  para el repositorio de Maven, para ello, antes de ejecutar los comandos de configuración, es necesario acceder desde el navegador de internet por default a la opción registration site en la página:

https://maven.oracle.com



Introducir el usuario y password de la cuenta usada previamente en el archivo de configuración:



Aceptar los términos de la licencia del repositorio de Maven.



Finalmente aparecerá el mensaje de confirmación y se redireccionará a la página de documentación de Maven.



Lo siguiente es instalar el plugin de Sincronización Maven en el repositorio local, para ser usado en OSB. En una ventana de línea de comandos ir al directorio:

$ORACLE_HOME/oracle_common/plugins/maven/com/oracle/maven/oracle-maven-sync/12.2.1/

 

Ejecutar el comando:

mvn install:install-file -DpomFile=oracle-maven-sync-12.1.1.pom -Dfile=oracle-maven-sync-12.1.1.jar

 

Finalmente ejecutar el comando:

mvn com.oracle.maven:oracle-maven-sync:push -DoracleHome=$ORACLE_HOME

 

Una vez configurado el plugin, ejecuta una instrucción package, ya sea en JDeveloper o en línea de comando. Para hacerlo en JDeveloper, clic derecho en el proyecto, Run Maven, package.



Si deseas hacerlo en línea de comando, en la ruta donde se encuentra el archivo pom.xml del proyecto OSB ejecutar mvn package.



En cualquiera de los dos casos, comenzará la descarga de los archivos requeridos por Maven. Este proceso puede resultar tardado, alrededor de un par de horas en algunos casos. Una vez finalizada la descarga, hemos terminado de instalar y configurar Maven.

Para conectarlo con un repositorio Git es necesario agregar al archivo pom.xml los siguientes elementos con la configuración de la conexión al servidor.

<scm>
<connection>scm:git:http://host:port/path</connection>
<developerConnection>scm:git:http://host:port/path</developerConnection>
<url>http://host:port/path</url>
</scm>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-scm-plugin</artifactId>
<version>1.9.5</version>
<configuration>
<username>usuario</username>
<password>password</password>
</configuration>
</plugin>
</plugins>
</build>

 

Finalmente, complementando la seguridad en los archivos, para encriptar los passwords usados anteriormente, en la consola de línea de comandos ejecutar el comando para crear una contraseña maestra:

mvn --encrypt-master-password <elpasswordmaestro>

 

Crear el archivo XML de configuración de seguridad en la ruta:

${user.home}/.m2/settings-security.xml 

 

Este archivo debe tener lo siguiente, incluyendo el password maestro que creamos en el paso anterior:

<settingsSecurity>
<master>{jWc5MOWnpaqEgsHVpMvz5VrIt5klNzGpI8u+9EH1iFQyJQ=}</master>
</settingsSecurity>

 

Por último, ejecutar el siguiente comando cuando se requiere encriptar los passwords:

mvn --encrypt-password <passwordAEncriptar>

 

Con esto finaliza la instalación y configuración. Para mayor referencia sobre el uso de Maven con proyectos SOA, aquí encontrarás la documentación completa que Oracle ha publicado para esta versión:

http://docs.oracle.com/middleware/1213/core/MAVEN/config_maven.htm#MAVEN8853



Sandra Flores es Ingeniera en sistemas computacionales con más de 8 años de experiencia laboral, egresada de la Escuela Superior de Cómputo del IPN México. He realizado gran variedad de actividades relacionadas al desarrollo de sistemas. Enfocada al desarrollo de soluciones con Oracle Fusion Middleware así como desempeñar el cargo de SOA Sr. Consultant.

Este artículo ha sido revisado por el equipo de productos Oracle y se encuentra en cumplimiento de las normas y prácticas para el uso de los productos Oracle.