跳到主要内容

调试您的插件

插件开发过程中,通常会遇到一些代码逻辑错误、插件的兼容性问题、性能瓶颈等挑战。

合理的使用断点能够帮助我们快速分析、定位问题。

而插件调试需要先在 IDEA 中进行 运行/调试配置 的编辑。

编辑调试配置

使用 IDEA 打开项目。

  1. 在顶栏中,打开 运行/调试配置 窗口。
  2. 选择 JAR 应用程序 模板。
  1. 编辑窗口内容
字段描述
名称Nukkit-MOT
JAR 路径Nukkit-MOT-SNAPSHOT.jar 的完整路径
工作目录Nukkit-MOT 服务端所处的文件夹路径
JRE选择 Java 17 运行时

最后点击 确定 即可。

自动更新插件到插件目录

通过上述操作,我们已经可以使用 Shift + F9 组合键进行代码调试。

值得注意的是,只有 jar 插件与现在项目中的构建产物相同时,才能使用断点进行分析。

在此,为了方便,我们希望在每次构建成功后自动更新插件到 plugins 目录下。

下面介绍如何对 Maven 项目的 pom.xml 文件进行配置,以实现我们的需求。

添加相关属性

pom.xml
    <groupId>cn.nukkitmot</groupId>
<artifactId>example-plugin</artifactId>
<version>1.0.0</version>
<name>ExamplePlugin</name>
<description>An Example Nukkit-MOT Plugin</description>
<url>https://github.com/MemoriesOfTime/ExamplePlugin-Maven/</url>

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>

<nukkitPluginsPath>C:\BedrockServer\MOT\plugins</nukkitPluginsPath>
</properties>

artifactId 是插件名称,默认情况下构建产物的名称为包含此值。

nukkitPluginsPath 是插件目录的路径,需要手动添加调试环境中的 plugins 目录。

添加 Maven plugins 标签

标签 <build> 被包含在 <project> 中。

pom.xml
    <build>
<defaultGoal>clean package</defaultGoal>

<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.2.0</version>
<configuration>
<outputDirectory>${nukkitPluginsPath}</outputDirectory>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-clean-plugin</artifactId>
<version>3.2.0</version>
<configuration>
<filesets>
<fileset>
<directory>${nukkitPluginsPath}</directory>
<includes>
<include>${artifactId}*.jar</include>
</includes>
</fileset>
</filesets>
</configuration>
<executions>
<execution>
<phase>pre-clean</phase>
<goals>
<goal>clean</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>

使用

  1. 在 IDEA 右侧点击字母 M 图标,打开 Maven 选项卡。
  2. 点击 clean 进行清理,点击 package 进行构建打包。

请注意需要先进行清理而后再进行构建打包,否则上一次的 jar 产物不会被更新。

ExamplePlugin
生命周期
clean
validate
compile
test
package
verify
install
site
deploy
插件
依赖项
仓库

恭喜你,至此已经完成所有配置。