【仅供内部供应商使用,不提供对外解答和培训】
...
1、在report-starter-10目录下,新建一个目录,这里假设为plugin-hello-world;
2、将plugin-function中的build.xml(用于构建插件包)、plugin.xml(用于描述插件接入点信息)以及pom.xml(用于管理插件jar包依赖)复制到pluginfunction中的plugin.xml(用于描述插件接入点信息)以及build.gradle(用于管理插件jar包依赖)、encrypt.xml复制到plugin-hello-world目录下,同时修改一下基本的配置信息:
a.将build.xml中的
<property name="plugin-name" value="function-test"/>
修改为
<property name="plugin-name" value="function-hello-world"/>
b.将plugin.xml中的各项内容,都改一下,修改后的文件内容如下
world目录下,然后对plugin.xml的内容稍作修改:
修改后的文件内容如下
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
<?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中的内容,稍作修改,修改后的文件内容如下
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
<?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/resources
由于我们已经给插件添加了maven配置文件(pom.xml),因此我们只需要将插件目录添加为maven项目即可,如下图所示
等待IntelliJ IDEA解析完maven配置之后,就可以看到java目录和resources目录都变样式了
...
在report-starter-10/settings.gradle中增加一行
Code Block |
---|
include(':plugin-hello-world') |
完成之后,在IntelliJ IDEA右侧边栏打开Gradle面板,点击刷新
等待IntelliJ IDEA解析完Gradle配置之后,就可以看到java目录和resources目录都变样式了
这里就可以直接在java目录下增加插件的实现类就可以。
...
插件开发过程中,通常还会依赖一些非FineReport/FineBI内置的jar,这个时候,只需要把这些jar拷贝到插件工程的lib下(没有就新建一个),然后参考上面pom.xml中的本地依赖部分
Code Block |
---|
<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的管理,简化我们的开发过程。
FineBI内置的jar,这个时候,只需要把这些jar拷贝到插件工程的lib根目录下即可(没有就新建一个)。
通过Gradle,我们可以不用关注插件的依赖关系在IntelliJ IDEA的管理,简化我们的开发过程。