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

Page tree

Versions Compared

Key

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

...

1、在report-starter-10目录下,新建一个目录,这里假设为plugin-hello-world;

2、将plugin-function中的buildfunction中的plugin.xml(用于构建插件包)、pluginxml(用于描述插件接入点信息)以及build.xml(用于描述插件接入点信息)以及pom.xml(用于管理插件jar包依赖)复制到plugingradle(用于管理插件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中的各项内容,都改一下,修改后的文件内容如下

world目录下,然后对plugin.xml的内容稍作修改:

修改后的文件内容如下

Code Block
languagexml
titleplugin.xml
collapsetrue
<?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
languagexml
titlepom.xml
collapsetrue
<?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项目即可,如下图所示

Image Removed

等待IntelliJ IDEA解析完maven配置之后,就可以看到java目录和resources目录都变样式了

...

在report-starter-10/settings.gradle中增加一行

Code Block
include(':plugin-hello-world')

完成之后,在IntelliJ IDEA右侧边栏打开Gradle面板,点击刷新

Image Added

等待IntelliJ IDEA解析完Gradle配置之后,就可以看到java目录和resources目录都变样式了

Image Added

这里就可以直接在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的管理,简化我们的开发过程。