Vamos a definir los pasos para la integración de OpenCms con un servidor Git, que nos facilita enormemente el desarrollo.
Instalar y configurar Git
En primer lugar, instalamos el Git en nuestro servidor y en los clientes, o en los clientes usamos una aplicación diferente, pero siempre es mejor la línea de comandos ^_^:
[code]yum install git-core[/code]
Y es recomendable poder acceder por certificado, por lo que generamos uno
[code]ssh-keygen -t rsa[/code]
Configuramos un repositorio en un servidor que equivale al Git remoto:
[code]mkdir -p /servicio/git-repositories/opencms.git
cd /servicio/git-repositories/opencms.git
git init –bare[/code]
Configuramos un repositorio en nuestro equipo para tener una copia del repositorio:
[code]mkdir -p /home/davidrod/projects/opencms
cd /home/davidrod/projects/opencms
git init[/code]
Crear la estructura del módulo
Según la documentación del fichero de Opencms:
[code]
### Demo configuration file for the OpenCms git commit tool
### The configuration file assumes you have a git repository under
### /home/user/git/demo/
### where modules are all stored in the subfolder
### /home/user/git/demo/modules/
### and each module again has a subfolder with it’s name, e.g.,
### /home/user/git/demo/modules/my.module.one/
### and the module resources in a subfolder «resources», e.g.,
### /home/user/git/demo/modules/my.module.one/resources/
### which is the place, where the module should be unzipped in before check in.
[/code]
Así que creamos esta estructura para el módulo es.uva.web.portal.opencms.tipos, de forma que creamos modules, dentro de ella el módulo es.uva.web.portal.opencms.tipos y dentro de ella resources.
[code]mkdir -p /home/davidrod/projects/opencms/modules/es.uva.web.portal.opencms.tipos/resources[/code]
Y en esa carpeta resources exportamos el módulo descomprimido, por lo que dentro de ella debemos tener:
[code]./manifest.xml
./system
./system/modules
./system/modules/es.uva.web.portal.opencms.tipos[/code]
Nuestro primer commit del módulo
Ahora hacemos el commit hacia el repositorio. Por si acaso no dominas git, añado todos los pasos
[code]git config –global user.name “davidrod”
git config –global user.email “david.rodriguez.merino@uva.es”
git remote add origin ssh://git@172.16.21.169/servicio/git-repositories/opencms.git
git branch –set-upstream-to=origin/master master
git add .
git commit -m “initial” -a
git push[/code]
De esta manera ya tenemos subida la versión inicial en el repositorio.
El repositorio local del servidor OpenCms
Ahora vamos a nuestro servidor de Opencms. Debemos crear una carpeta en el sistema de ficheros que usaremos para el proyecto local. Por ejemplo
[code]mkdir -p /servicio/git-projects/opencms/[/code]
Luego realizamos los mismos pasos para configurar la sincronización con el repositorio.
[code]cd /servicio/git-projects/opencms/
git init
git config –global user.name “davidrod”
git config –global user.email “david.rodriguez.merino@uva.es”
git remote add origin ssh://root@172.16.21.169:/servicio/git-projects//opencms/
Git pull origin master
git branch –set-upstream-to=origin/master master[/code]
Con esto tenemos configurado una carpeta sincronizada con el repositorio Git que Opencms utilizará de “puente”.
Configuración de OpenCms
Ahora vamos a configurar el fichero module-checkin.conf dentro de la carpeta /WEB-INF/git-scripts/
Debe de tener los módulos con los que vamos a trabajar. Puede dejarse vacío y simplemente seleccionar.
[code]DEFAULT_MODULES_TO_EXPORT=»es.uva.web.portal.opencms.tipos»[/code]
Nuestro repositorio local en el servidor
[code]REPOSITORY_HOME=/servicio/git-projects/opencms/
MODULE_PATH=/servicio/git-projects/opencms/modules
MODULE_RESOURCES_SUBFOLDER=resources/[/code]
Y un punto importante para ahorrarnos trabajo, usar un certificado para una conexión con el repositorio remoto sin contraseña:
[code]GIT_SSH=»/var/lib/tomcat/webapps/keys/git»[/code]
Ya por último, damos permisos de ejecución al fichero /WEB-INF/git-scripts/module-checkin.sh
Ya podemos probar la integración con Git en Opencms. Tanto el check in como el import debería funcionar sin problemas.
Cómo ejecutarlo desde línea de comandos
Si tenemos problemas, y queremos ver con detalle el problema, podemos llamar al programa desde una línea de comandos, como por ejemplo para el módulo es.uva.web.portal.opencms.tipos:
Para hacer un push
[code]
./module-checkin.sh –modules «es.uva.web.portal.opencms.tipos» -msg «This is my automatic commit.» –git-user-name «davidrod» –git-user-email «david.rodriguez.merino@uva.es» –pull-before –pull-after –push –export-folder «/usr/share/tomcat/webapps/ROOT/WEB-INF/packages/modules/» –export-mode 1 –exclude-libs –commit –ignore-unclean –copy-and-unzip «/usr/share/tomcat/webapps/ROOT/WEB-INF/git-scripts/module-checkin.conf»[/code]
Para hacer un pull
[code]./module-checkin.sh –checkout «/usr/share/tomcat/webapps/ROOT/WEB-INF/git-scripts/module-checkin.conf»[/code]
Hola, me podéis confirmar con que versión de opencms lo habéis realizado. Me interesa saber si es posible con la versión 7, gracias
Hola,
No, es con la versión 10. Lo sentimos.