Hytale之我见 专注hytale服务器技术

使用maven开发spigot插件

2019-10-20
hytaleme

本文介绍使用maven进行spigot插件的开发的具体步骤,适合第一次接触maven的开发者。

提示:这里使用IDEA开发工具,其他开发工具也类似

一. 新建maven项目

新建项目

如上图,新建项目,填入:

  • groupId:类似组名,通常使用你拥有的域名,大的(域名后缀)放前面
  • artifactId:类似组内的项目名,随意取
  • version:版本,这里使用默认的1.0-SNAPSHOT

项目结构

新建后的项目结构类似上图,是标准的maven项目结构,其中主要有:

  • src/main/java:源码目录
  • src/main/resources:资源目录,里面的文件会在打包时包含进来。
  • src/test/java:测试源码目录
  • src/test/resources:测试资源目录(这里没有显示出来)
  • pom.xml:项目的maven配置文件

二. 修改pom文件

增加内容后的pom文件如下:

<?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>

    <groupId>com.hytaleme.demo</groupId>
    <artifactId>plugin-demo</artifactId>
    <version>1.0-SNAPSHOT</version>

    <dependencies>
        <dependency>
            <groupId>org.spigotmc</groupId>
            <artifactId>spigot-api</artifactId>
            <version>1.9</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>

    <repositories>
        <repository>
            <id>ExtendedClip</id>
            <url>http://repo.extendedclip.com/content/repositories/public/</url>
        </repository>
    </repositories>
</project>
  1. 增加了一个dependency(依赖):org.spigotmc:spigot-api:1.9(这是spigot服务端提供的接口),并设置scope(范围)为provided,表示运行环境会提供这个依赖,打包时不用包含进去
  2. 增加了一个repository(仓库):http://repo.extendedclip.com/content/repositories/public/,这是一个spigot官方提供的maven自定义仓库,如果不指定默认会去maven中央仓库寻找依赖,而上面的依赖并没有发布在maven中央仓库

更新pom文件后,idea开发工具会自动重新导入maven依赖。

三. 开发

这里我新建了个com.hytaleme.demo.plugindemo包(注意包名命名的约定类似于上面maven的groupId),然后新建类DemoPlugin继承JavaPlugin

同时按插件要求在资源目录下增加了plugin.yml文件并填入内容。

此时项目情况如下:

开发

四. 打包

在idea开发工具里,可以在右侧找到maven,点开Lifecycle(生命周期),再点击package进行打包, 在下方控制台看到BUILD SUCCESS字样表示打包成功,此时会在项目目录下生成target目录,里面的jar包就是可用的插件了。

idea打包

如果已经打包过了,进行开发后再打包时,为了避免旧产出的干扰(如删除了类), 可以先清理一下maven产出再打包,点击clean即可清除target产出目录。

此外,如果你要使用maven的原生命令来打包,可以输入mvn clean package

五. 插件版本升级

随着开发的进行,插件可能要发布新版本,此时需要修改:

  1. pom.xml文件里的version属性
  2. plugin.xml里的version属性

修改后再打包即可生成新版本


下一篇 java远程调试

目录