gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 20:38:11 33 4
gpt4 key购买 nike

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

考虑到报表单元的结构是在数据库中并通过 iReport 或 Web 前端进行管理,是否有人对如何最好地管理此开发的版本控制有任何建议?

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

有人指点一下吗?

最佳答案

这是有问题的。我已经建立了一个 subversion 存储库,以允许对标准报告交付进行版本控制,但这确实很痛苦,因为 jasper 并没有让这变得更容易。

我创建了一个带有程序集描述符的 Maven 项目,以便可以将“src/main/xml/resources/Reports,adhoc,Domains 等”打包到一个 zip 中,然后推送到我们的 Maven 存储库。

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

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

为了使导出/颠覆 checkin 更容易,我创建了一个 ant 构建文件,该文件位于 Maven 项目的根目录中。构建提示(或将读取属性文件)以确定导出的 zip 位置、导出树的组织 ID。然后,它打开从 jasper 导出的 zip 文件,将其分解,对文件执行文本替换,将“createdDate”和“updatedDate”元素重置为标准值(这样开发人员就不会最终 checkin 尚未实际更改的文件)因为 jasper 不保留日期值),然后将文件复制到 subversion 树中。

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

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

关于version-control - 如何在 JasperReports 中使用版本控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2295241/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com