使用的openfire4.5版本,idea2019.3
一:导入idea:
1.先要提前安装好jdk和maven,并配置好环境变量
2.在idea中配置maven,jdk可以导入后再配置


3.要用import project,网上找了好多都是用open打开,我使用open打开后,maven没生效,后续步骤都做不了
.
4.选择

5.选择maven,点击finish,会自动加载pom.xml文件,然后就是漫长的等待期,下载各种东西。

6.加载完是这个样子算成功了

7.按照readme文档中操作
IntelliJ IDEA:
- Run -> Edit Configurations... -> Add Application
- fill in following values
- Name: Openfire
- Use classpath of module: starter
- Main class: org.jivesoftware.openfire.starter.ServerStarter
- VM options (adapt accordingly):
-DopenfireHome="-absolute path to your project folder-\distribution\target\distribution-base" -Xverify:none -server -Dlog4j.configurationFile="-absolute path to your project folder-\distribution\target\distribution-base\lib\log4j2.xml" -Dopenfire.lib.dir="-absolute path to your project folder-\distribution\target\distribution-base\lib" -Dfile.encoding=UTF-8 - Working directory: -absolute path to your project folder-
- apply
完成后效果


8.修改编码,参照https://blog.csdn.net/m0_38132361/article/details/80628203,将相关编码都修改为UTF-8,不然后面的汉字都是乱码
9.继续按照readme文档,在Terminal中执行mvnw verify

10.执行成功后,就可以点击


11.之后就可以复制管理平台监听后面的网址,在浏览器打开

二:插件开发
新建一个maven项目,next后填写项目名称,finish

2.在openfire的项目中,右边Maven中+号,选择刚才新建的插件项目的pom.xml

3.修改pom.xml文件
官网上http://download.igniterealtime.org/openfire/docs/latest/documentation/plugin-dev-guide.html,从这点击进去的示例,用了一下,不行,打包的jar文件中少很多东西

换一种方法,在openfire github网站https://github.com/igniterealtime 上找一个插件,下载下来,将插件项目中的红框中的文件都拷贝给自己的插件,进行修改


如下是我自己改造完成后的
<?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>
<artifactId>plugins</artifactId>
<groupId>org.igniterealtime.openfire</groupId>
<version>4.5.5-SNAPSHOT</version>
</parent>
<groupId>org.igniterealtime.openfire.plugins</groupId>
<artifactId>userMucList</artifactId>
<version>1.0.0-SNAPSHOT</version>
<name>userMucList</name>
<description>User MUC list plugin.</description>
<build>
<sourceDirectory>src/java</sourceDirectory>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.6</version>
<dependencies>
<dependency>
<groupId>org.igniterealtime.openfire.plugins</groupId>
<artifactId>openfire-plugin-assembly-descriptor</artifactId>
<version>${openfire.version}</version>
</dependency>
</dependencies>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<appendAssemblyId>false</appendAssemblyId>
<finalName>${project.artifactId}</finalName>
<attach>false</attach>
<descriptorRefs>
<descriptorRef>openfire-plugin-assembly</descriptorRef>
</descriptorRefs>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<repositories>
<!-- Where dependencies are obtained (such as the parent project). -->
<repository>
<id>igniterealtime</id>
<name>Ignite Realtime Repository</name>
<url>https://igniterealtime.org/archiva/repository/maven/</url>
</repository>
</repositories>
<pluginRepositories>
<!-- Typically used to retrieve Maven plugins that are used by this project.
This apparently is also used to botain the dependencies _used by_ these
plugins (such as the openfire-plugin-assembly-descriptor, needed to
package the project as an Openfire plugin!) -->
<pluginRepository>
<id>igniterealtime</id>
<name>Ignite Realtime Repository</name>
<url>https://igniterealtime.org/archiva/repository/maven/</url>
</pluginRepository>
</pluginRepositories>
</project>
plugin.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<plugin>
<class>com.muclist.MUCListPlugin</class>
<name>userMucList</name>
<description>User MUC list plugin.</description>
<author>xxxxxxx</author>
<version>${project.version}</version>
<date>1/9/2021</date>
<minServerVersion>4.5.0</minServerVersion>
</plugin>
4.打包:先点clean,再点install

打包成功

版本号后面不带-SNAPSHOT,打jar包时会报错,不知道为什么

5.检查打包好的jar文件,这个名称一定要与pom.xml中的artifactId一致,
将jar包放入 openfire代码的路径\distribution\target\distribution-base\plugins目录下。重新已debug模式启动就可以了。


6.实际部署使用时,将jar包放入openfire安装路径下的plugins文件夹下