通过前面几节的学习,我们已经的学会了插件开发工程的配置、插件的开发和调试以及插件包的构建等基本操作,但到目前为止,我们都还只是使用的插件开发工程中的示例插件,还没有新建一个完全由自己创建的插件。
1、在report-starter-10目录下,新建一个目录,这里假设为plugin-hello-world;
2、将plugin-function中的build.xml(用于构建插件包)、plugin.xml(用于描述插件接入点信息)以及pom.xml(用于管理插件jar包依赖)复制到plugin-hello-world目录下,同时修改一下基本的配置信息:
a.将build.xml中的
<property name="plugin-name" value="function-test"/>
修改为
<property name="plugin-name" value="function-hello-world"/>
b.将plugin.xml中的各项内容,都改一下,修改后的文件内容如下
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <plugin> <id>com.fr.plugin.function.hello.world</id> <name><![CDATA[Hello World]]></name> <active>yes</active> <version>1.0</version> <env-version>10.0</env-version> <jartime>2019-06-15</jartime> <vendor>author</vendor> <description><![CDATA[你好]]></description> <change-notes><![CDATA[ [2019-07-15]初始化插件。<br/> ]]></change-notes> <extra-core> <FunctionDefineProvider class="com.fr.plugin.HelloWorld" name="hw" description="Hello World。"/> </extra-core> <function-recorder class="com.fr.plugin.HelloWorld"/> </plugin> |
c.将pom.xm中的内容,稍作修改,修改后的文件内容如下
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>com.fr.plugin</groupId> <artifactId>starter</artifactId> <version>10.0</version> </parent> <packaging>jar</packaging> <!---注意这里的最好保持和文件夹一致--> <artifactId>plugin-hello-world</artifactId> <dependencies> <dependency> <groupId>com.fr.plugin</groupId> <artifactId>gson</artifactId> <version>1.0</version> <scope>system</scope> <systemPath>${project.basedir}/lib/gson-2.3.1.jar</systemPath> </dependency> </dependencies> <build> <!---如果要更改调试插件,改这里的配置就可以了--> <!---注意这里需要保持plugin-xxxx-1.0,其中xxx为插件id--> <outputDirectory>${project.basedir}/../webroot/WEB-INF/plugins/plugin-com.fr.plugin.function.hello.world-1.0/classes</outputDirectory> </build> </project> |
3、在plugin-hello-world下新建一个用于存放java源码的目录和一个用于存放java源码以外的其他资源文件的目录,分别为
src/main/java
和
src/main/resources
由于我们已经给插件添加了maven配置文件(pom.xml),因此我们只需要将插件目录添加为maven项目即可,如下图所示
等待IntelliJ IDEA解析完maven配置之后,就可以看到java目录和resources目录都变样式了
这里就可以直接在java目录下增加插件的实现类就可以。
插件开发过程中,通常还会依赖一些非FineReport/FineBI内置的jar,这个时候,只需要把这些jar拷贝到插件工程的lib下(没有就新建一个),然后参考上面pom.xml中的本地依赖部分
<dependencies> <dependency> <groupId>com.fr.plugin</groupId> <artifactId>gson</artifactId> <version>1.0</version> <scope>system</scope> <systemPath>${project.basedir}/lib/gson-2.3.1.jar</systemPath> </dependency> </dependencies> |
修改下systemPath的路径为实际路径即可。
通过maven,我们可以不用关注插件的依赖关系在IntelliJ IDEA的管理,简化我们的开发过程。