Version control 如何在JasperReports中使用版本控制

Version control 如何在JasperReports中使用版本控制,version-control,jasper-reports,Version Control,Jasper Reports,我们即将开始使用Jasper Server reports 3.7.0 CE版开发大量报告 考虑到报表单元的结构是在数据库中通过iReport或web前端管理的,有人对如何最好地管理此开发中的版本控制有什么建议吗 事实上,您可以使用js import/js export脚本导入/导出到目录结构,但不能使用iReport直接编辑这些文件 有人有什么建议吗?如果我处在你的位置,我会建立这种流程: 开发会话结束:将所有报表导出到版本控制项目中的目录结构 提交项目 在下一次开发会话之前:将项目与svn

我们即将开始使用Jasper Server reports 3.7.0 CE版开发大量报告

考虑到报表单元的结构是在数据库中通过
iReport
或web前端管理的,有人对如何最好地管理此开发中的版本控制有什么建议吗

事实上,您可以使用js import/js export脚本导入/导出到目录结构,但不能使用
iReport
直接编辑这些文件


有人有什么建议吗?

如果我处在你的位置,我会建立这种流程:

  • 开发会话结束:将所有报表导出到版本控制项目中的目录结构
  • 提交项目
  • 在下一次开发会话之前:将项目与svn存储库同步
  • 将目录结构导入Jasper服务器报告
  • 继续发展

    • 这是有问题的。我已经建立了一个subversion存储库,以允许对标准报告交付进行版本控制,但这确实是一个难题,因为jasper并没有使这一点变得简单

      我创建了一个带有组装描述符的maven项目,这样“src/main/xml/resources/Reports、adhoc、Domains等”就可以打包在一个zip中,并推送到我们的maven存储库中

      最大的问题是,不能仅仅通过修改XML文件来开发临时和输入控件。开发人员必须将源代码管理中的内容导入到工作的jasper服务器中,修改报告或添加新的报告(在确保其组织和数据源已配置之后),并且在对报告的工作情况感到满意后,将资源导出到目录或zip文件,在签入更改之前,手动将导出文件中的所有引用从数据源和特定于组织的资源位置修改回“通用”

      当导入jasper时,同样的过程必须反向进行。通用路径和组织值必须转换为开发人员的组织,以便可以轻松导入/更新,并且他可以在签入之前证明完整的“往返”工作正常

      为了简化导出/subversion签入,我创建了一个ant构建文件,它位于maven项目的根目录中。生成提示(或将读取属性文件)确定导出的zip位置,即导出树的组织id。然后,它打开从jasper导出的zip文件,将其分解,对文件执行文本替换,将“createdDate”和“UpdateDate”元素重置为标准元素(这样开发人员就不会签入由于jasper没有保留日期值而实际上没有更改的文件),然后将文件复制到subversion树中

      对于导入过程(从subversion树到jasper),我们有一个脚本,该脚本将组织id作为输入,然后将版本化的xml文件修改为适当的值,以便可以轻松地将整个树导入/更新到其组织中


      之所以需要这种级别的复杂性,是为了让我们能够在多租户环境中创建相同的标准报告,再加上jasper部署报告的概念非常奇怪。如果您打算这样做,我不确定是否可能使此过程变得更加困难。

      这就是我所做的,我一点也不喜欢。您是否仍在使用此过程,是否发现了比此更好的方法,或使用此方法存在的任何问题。我遇到了管理特定版本的报告和发布修补版本的报告的问题。@broschb它与流程无关,但与jasperReports模板使用的底层XML格式有关。它不是一种用户友好的版本管理格式,如果一次有多人引入更改,则合并更改也不容易。此外,我们在windows下遇到了文件长度问题,因此我们现在以zip格式导出该文件。这真的很痛苦。随着时间的推移,解决方案有多稳定?特别是您是否尝试过升级服务器?