Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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

启动调试模式

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

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

Code Block
languagexml
<build>
     <!---如果要更改调试插件,改这里的配置就可以了-->ext {
  outputPath   <outputDirectory>${project.basedir}= "$projectDir/../webroot/WEB-INF/plugins/plugin-com.fr.plugin.function.test" + pluginName + "-1.0/classes</outputDirectory>
</build>classes"
}

需要注意的是

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

2、如果插件依赖了其他第三方jar包,需要将这些依赖的jar包也拷贝到plugin2、如果插件依赖了其他第三方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.

...

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

远程环境调试

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

...