Как использовать контроль версий с JasperReports - PullRequest
8 голосов
/ 19 февраля 2010

Мы собираемся приступить к разработке ряда отчетов с использованием Jasper Server Reports версии 3.7.0 CE.

Есть ли у кого-нибудь какие-либо рекомендации относительно того, как лучше управлять управлением версиями с помощью этой разработки, учитывая, что структура блоков отчетов управляется в базе данных и через iReport или через веб-интерфейс?

Фактически вы можете импортировать / экспортировать в структуру каталогов, используя сценарии js-import / js-export, но затем вы не можете редактировать эти файлы напрямую с помощью iReport.

У кого-нибудь есть указатели?

Ответы [ 2 ]

8 голосов
/ 18 августа 2011

Это проблематично. Я создал хранилище Subversion, позволяющее управлять версией доставки стандартных отчетов, но это реальная боль, потому что Jasper не делает это даже немного легким.

Я создал проект maven с дескриптором сборки, чтобы «src / main / xml / resources / Reports, adhoc, Domains и т. Д.» Можно было упаковать в zip-архив, который помещается в наш репозиторий maven.

Самая большая проблема заключается в том, что вы не можете просто разработать adhoc и средства управления вводом, просто изменив XML-файлы. Разработчик должен импортировать то, что находится в системе контроля версий, на работающий сервер jasper, изменить отчеты или добавить новые (убедившись, что его организация и источники данных настроены) и, убедившись, что отчеты работают, экспортировать ресурсы в каталог или zip-файл вручную измените все ссылки в экспортируемых файлах из источников данных и местоположений, специфичных для организации, обратно на «универсальный», прежде чем регистрировать его изменения.

При импорте в яшму тот же процесс должен быть выполнен в обратном порядке. Общие пути и значения организации должны быть преобразованы в организацию разработчика, чтобы их можно было легко импортировать / обновлять, и он может доказать, что полный «круговой оборот» работает должным образом перед регистрацией.

Чтобы упростить регистрацию экспорта / подрывной деятельности, я создал файл сборки ant, который находится в корневом каталоге проекта maven. Сборка запрашивает (или будет читать файл свойств), чтобы определить расположение экспортируемого zip, идентификатор организации экспортируемого дерева. Затем он открывает экспортированный zip-файл из jasper, взрывает его, выполняет замену текста в файлах, сбрасывает элементы «creationDate» и «updatedDate» в нечто стандартное (чтобы разработчик не заканчивал проверкой файлов, которые на самом деле не изменились) поскольку яшма не сохраняет значения даты), а затем скопируйте файлы в дерево подрывной деятельности.

Для процесса импорта (из дерева подрывной деятельности в jasper) у нас есть скрипт, который принимает в качестве входных данных идентификатор организации, а затем изменяет версионные файлы XML на соответствующие значения, чтобы все дерево можно было легко импортировать / обновить в их организация.

Причина, по которой этот уровень сложности необходим, заключается в том, что мы можем создавать одни и те же стандартные отчеты в мультитенантной среде, плюс представление Джаспера о развертывании отчетов абсолютно странно. Я не уверен, что было бы возможно усложнить этот процесс, если бы вы собирались это сделать.

4 голосов
/ 19 февраля 2010

Если бы я был на вашем месте, я бы установил такой процесс:

  • конец сеанса разработки: экспортировать все отчеты в структуру каталогов в проекте под управлением версиями
  • зафиксировать проект
  • до следующего сеанса разработки: синхронизировать проект с репозиторием svn
  • импортировать структуру каталогов в Jasper Server Reports
  • продолжить разработку
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...