插件简介

插件是 JPress 对其他功能扩展的一种方式,在 JPress 中,编写插件不需要学习任何的 JPress 内置代码和“钩子(hook)”,因为在 JPress 中,并不像其他应用一样提供了“钩子(hook)”的功能。

JPress 的插件,与其说是插件,不如说是应用可能更好的理解,因为在JPress插件中,你可以在插件里编写控制器(Controller)、model、拦截器(Interceptor)、Handler…等等,就像一个JFinal的应用一模一样。

JPress 插件和应用不一样的地方,只是在项目的resource下增加了一个插件的配置 addon.txt 文件,用于对此应用(或者说是插件)的描述。例如:

  1. id=io.jpress.addon.club
  2. title=JPress 社区
  3. description=JPress 官方开发的交流社区
  4. author=海哥
  5. authorWebsite=
  6. version=1.0.2
  7. versionCode=3

他们分别是

  • id:插件的唯一ID,在一个JPress应用中只能安装同一个ID的插件。建议用包名+项目名的方式进行命名
  • title:插件的标题或名称
  • description:插件的描述
  • author:插件的作者
  • authroWebsite:插件作者的官方网站
  • version:版本
  • versionCode:版本号,当该插件进行升级的时候,用对对比当前插件是否可以升级

在编写插件的时候,以上配置文件 addon.txt 必须被打包的jar包中才能进行安装, 所以在此插件的 Maven module 的 pom.xml 中,比如添加如下的配置:

  1. <build>
  2. <resources>
  3. <resource>
  4. <directory>src/main/resources</directory>
  5. <includes>
  6. <include>**/*.*</include>
  7. </includes>
  8. <filtering>false</filtering>
  9. </resource>
  10. </resources>
  11. </build>

以保障,在maven编译的时候正常把 addon.txt 文件打包到插件的jar中去。

倘若,此插件还有html、css等文件存放在 webapp 目录下,完整的 resources 应该如下配置:

  1. <build>
  2. <resources>
  3. <resource>
  4. <directory>src/main/resources</directory>
  5. <includes>
  6. <include>**/*.*</include>
  7. </includes>
  8. <filtering>false</filtering>
  9. </resource>
  10. <resource>
  11. <directory>src/main/webapp</directory>
  12. <includes>
  13. <include>**/*.*</include>
  14. </includes>
  15. <filtering>false</filtering>
  16. </resource>
  17. </resources>
  18. </build>

可以参考插件的 hello world 项目:https://gitee.com/fuhai/jpress/blob/master/jpress-addons/jpress-addon-helloworld/pom.xml