【仅供内部供应商使用,不提供对外解答和培训】

Page tree

【仅供内部供应商使用,不提供对外解答和培训】

Skip to end of metadata
Go to start of metadata

通过前面三节教程,我们已经成功的开发了第一个插件。但是假设插件没有按照我们预期那样的工作,我们需要怎么办呢?当然是进行插件调试。

启动调试模式

因为在插件的Gradle配置文件中,我们已经配置好了插件的class编译目录,因此在启动设计器的时候,我们选择Debug模式即可进行插件调试

关键配置:在plugin-function的Gradle配置中,包含了class编译的目录描述

ext {
  outputPath = "$projectDir/../webroot/WEB-INF/plugins/plugin-" + pluginName + "-1.0/classes"
}

需要注意的是

1、plugin-com.fr.plugin.function.test-1.0中间的部分,必须保持和插件id相同,才能在开发时让插件正确的生效;

2、如果插件依赖了其他第三方jar包(包括finekit),需要将这些依赖的jar包也拷贝到plugin-com.fr.plugin.function.test-1.0目录下。

更多的高级配置

调试环境搭建

插件home指环境下plugins文件夹中以【"plugin-" + 插件ID + "-" +插件版本号】命名的文件夹,如:plugin-com.fr.plugin.chart.vancharts-8.5.3

调试时,需要将插件的plugin.xml复制到插件home中,并将插件的编译output path设置为插件home/classes文件夹。如插件有自定义的lib,也要复制到插件home下。

如:


同一个module下的多插件调试

有些时候,多个插件同属一个module,无法区分编译路径。这时可以将整个module都编译到环境plugins/debug/classes下,插件引擎会检测是否是debug模式以及当前插件的ClassPath,如果是debug,并且当前插件没有classPath,则将这个路径作为该插件的classPath.

注意1:只有当插件home中只有plugin.xml时,才会将debug下的jar和classes文件夹添加为该插件的classPath.

注意2:不要将插件编译到报表的ClassPath下,否则会导致部分依赖于插件类加载器的特性出问题。

远程环境调试

方式一:添加启动参数 -Dfine.plugin.home="/Users/juhaoyu/finereport/finereport-release-10.0/env/webroot/WEB-INF/plugins" 指定插件根目录:

方式二:添加启动参数-Duser.dir="/Applications/FineReport10/bin" 指定一个安装目录(推荐,支持9.0

  • No labels

8 Comments

  1. Anonymous

    请问远程环境调试有什么用呢?

    1. 一些插件需要确认在本地环境和远程设计都可以正常使用,会用到

  2. Anonymous

    远程环境指定的JVM参数的路径是linux路径吗?

    如果这样本地连接远程测试参数时不用修改的吧

    1. 是自己本地的报表安装好后,exe所在的目录

  3. Anonymous

    我想新增一个jar包,编译的时候也通过了,但是运行起来就是classnotfound,请问我这个jar包应该是放在什么位置呢?

  4. 需要放到你的插件类输出的那个classes同级下面

    1. Anonymous

      我是把jar包都放到了plugin-com.fr.plugin.function.test-1.0/下,但是起来的时候还是没找到,是不是还要配置什么东西呀?

  5. Anonymous

    关键配置:在plugin-function的Gradle配置中,包含了class编译的目录描述


    这个已经配置了,还需要下面高级配置里面修改idea中的output path 么