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

Page tree

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

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 8 Next »

通过前面几节的学习,我们已经的学会了插件开发工程的配置、插件的开发和调试以及插件包的构建等基本操作,但到目前为止,我们都还只是使用的插件开发工程中的示例插件,还没有新建一个完全由自己创建的插件。

新建插件

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中的各项内容,都改一下,修改后的文件内容如下

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中的内容,稍作修改,修改后的文件内容如下

pom.xml
<?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的管理,简化我们的开发过程。

 

 

  • No labels