【仅供内部供应商使用,不提供对外解答和培训】
【仅供内部供应商使用,不提供对外解答和培训】
通过前面三节教程,我们已经成功的开发了第一个插件。但是假设插件没有按照我们预期那样的工作,我们需要怎么办呢?当然是进行插件调试。
因为在插件的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都编译到环境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)
8 Comments
Anonymous
请问远程环境调试有什么用呢?
richie-季明华
一些插件需要确认在本地环境和远程设计都可以正常使用,会用到
Anonymous
远程环境指定的JVM参数的路径是linux路径吗?
如果这样本地连接远程测试参数时不用修改的吧
richie-季明华
是自己本地的报表安装好后,exe所在的目录
Anonymous
我想新增一个jar包,编译的时候也通过了,但是运行起来就是classnotfound,请问我这个jar包应该是放在什么位置呢?
ezreal-陈军
需要放到你的插件类输出的那个classes同级下面
Anonymous
我是把jar包都放到了plugin-com.fr.plugin.function.test-1.0/下,但是起来的时候还是没找到,是不是还要配置什么东西呀?
Anonymous
关键配置:在plugin-function的Gradle配置中,包含了class编译的目录描述
这个已经配置了,还需要下面高级配置里面修改idea中的output path 么