2010-02-19 18 views
7

Estamos a punto de comenzar el desarrollo de una serie de informes utilizando Jasper Server Reports versión 3.7.0 CE.Cómo usar el control de versiones con JasperReports

¿Alguien tiene alguna recomendación sobre cómo administrar mejor el control de versiones con este desarrollo, dado que la estructura de las unidades de informes se gestiona en la base de datos ya sea a través de iReport o la interfaz web?

De hecho, puede importar/exportar a una estructura de directorios usando los scripts js-import/js-export, pero luego no puede editar estos archivos directamente con iReport.

¿Alguien tiene punteros?

Respuesta

4

Si yo estaba en la posición que hubiera establecido este tipo de proceso:

  • final de la sesión de desarrollo: exportar todos los informes a una estructura de directorios en un proyecto bajo control de versiones
  • cometer el proyecto
  • antes de la próxima sesión de desarrollo: sincronizar el proyecto con repositorio sVN
  • estructura de directorio de importación a Jasper servidor informa
  • continuar con el desarrollo
+0

De hecho, eso es lo que he hecho. –

+0

Eso es lo que he hecho, y no me gusta para nada. ¿Sigues usando este proceso, has encontrado algo mejor que esto o cualquier problema con este enfoque? Me estoy encontrando con problemas con la gestión de versiones específicas de informes y la publicación de versiones parcheadas del informe. – broschb

+0

@broschb no tiene nada con el proceso, pero con el formato XML subyacente utilizado por las plantillas jasperReports. No es un formato fácil de usar para administrar versiones y no es fácil fusionar los cambios si más de una persona a la vez introduce cambios. –

6

Esto es problemático. He establecido un repositorio de subversión para permitir la entrega de informes estándar, pero es un verdadero dolor porque jasper no lo hace ni un poco fácil.

Creé un proyecto maven con un descriptor de ensamblaje para que "src/main/xml/resources/Reports, adhoc, Domains, etc." se pueda empaquetar en un zip que se envía a nuestro repositorio maven.

El mayor problema es que no se puede simplemente desarrollar controles de entrada y entrada simplemente modificando los archivos XML. El desarrollador debe importar lo que está en control de fuente en un servidor jaspe en funcionamiento, modificar los informes o agregar nuevos (después de asegurarse de que su organización y orígenes de datos estén configurados) y una vez que esté satisfecho de que los informes funcionan, exporte los recursos a un directorio o archivo comprimido, modifique manualmente todas las referencias en los archivos exportados desde las fuentes de datos y las ubicaciones de los recursos específicos de la organización a "genérico" antes de verificar sus cambios.

Al importar en jaspe, el mismo proceso tiene que hacerse al revés. Las rutas genéricas y los valores de la organización deben convertirse a la organización del desarrollador para que puedan importarse/actualizarse fácilmente y puede probar que el "viaje redondo" completo funciona correctamente antes de registrarse.

Para realizar la exportación/subversión checkin es más fácil, creé un archivo de compilación de hormigas que vive en el directorio raíz del proyecto maven. Las solicitudes de compilación (o leerán un archivo de propiedades) para determinar la ubicación zip exportada, la id de la organización del árbol exportado. Luego abre el archivo comprimido exportado de jasper, lo explota, realiza reemplazos de texto en los archivos, restablece los elementos "createdDate" y "updatedDate" a algo estándar (para que el desarrollador no termine revisando archivos que no han cambiado realmente) ya que jasper no conserva los valores de fecha), y luego copia los archivos en el árbol de subversión.

Para el proceso de importación (desde el árbol de subversión a jasper) tenemos un script que toma como entrada el ID de organización y luego modifica los archivos xml versionados a los valores apropiados para que todo el árbol pueda importarse/actualizarse fácilmente en su organización

La razón por la que se requiere este nivel de complejidad es para permitirnos crear los mismos informes estándar en un entorno de múltiples inquilinos, además la noción de jasper de implementar informes es absolutamente extraña. No estoy seguro de que sea posible dificultar este proceso si tuviera la intención de hacerlo.

+0

¿Qué tan estable es la solución a lo largo del tiempo? En particular, ¿alguna vez has intentado actualizar el servidor? –

Cuestiones relacionadas