You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Minecraft 1.20.4插件开发报错:Invalid plugin.yml 求助

解决Minecraft 1.20.4插件Invalid plugin.yml问题

问题概述

开发首个Minecraft插件时遇到Invalid plugin.yml错误,使用Gradle构建,对应版本1.20.4,核心报错为:

Caused by: java.io.FileNotFoundException: Jar does not contain plugin.yml

完整报错栈:

org.bukkit.plugin.InvalidDescriptionException: Invalid plugin.yml
    at org.bukkit.plugin.java.JavaPluginLoader.getPluginDescription(JavaPluginLoader.java:170) ~[spigot-api-1.20.4-R0.1-SNAPSHOT.jar:?]
    at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:157) ~[spigot-api-1.20.4-R0.1-SNAPSHOT.jar:?]
    at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:121) ~[spigot-api-1.20.4-R0.1-SNAPSHOT.jar:?]
    at org.bukkit.craftbukkit.v1_20_R3.CraftServer.loadPlugins(CraftServer.java:430) ~[spigot-1.20.4-R0.1-SNAPSHOT.jar:4090-Spigot-b754dcc-38b1f49]
    at net.minecraft.server.dedicated.DedicatedServer.e(DedicatedServer.java:223) ~[spigot-1.20.4-R0.1-SNAPSHOT.jar:4090-Spigot-b754dcc-38b1f49]
    at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:1000) ~[spigot-1.20.4-R0.1-SNAPSHOT.jar:4090-Spigot-b754dcc-38b1f49]
    at net.minecraft.server.MinecraftServer.lambda$0(MinecraftServer.java:304) ~[spigot-1.20.4-R0.1-SNAPSHOT.jar:4090-Spigot-b754dcc-38b1f49]
    at java.lang.Thread.run(Thread.java:1583) ~[?:?]
Caused by: java.io.FileNotFoundException: Jar does not contain plugin.yml

排查与解决方案

1. 确认plugin.yml位置

必须将plugin.yml放在项目的src/main/resources目录下,Gradle构建时会自动把该目录的文件打包到Jar根目录。如果放在其他路径,构建后的Jar里不会包含这个文件。

2. 验证plugin.yml格式合规

文件必须包含Spigot要求的必填项,且格式正确(用空格缩进,禁止制表符),示例如下:

name: CustomPlugin
version: 1.0.0
main: com.yourpackage.MainClass # 替换为你的主类完整包路径
api-version: 1.20
author: YourName
description: 插件功能描述

注意键名拼写准确,比如api-version不能写成apiversion。

3. 检查Gradle构建配置

确保build.gradle(或build.gradle.kts)正确配置了资源打包,推荐使用ShadowJar插件打包完整Jar:
Groovy DSL配置示例:

plugins {
    id 'java'
    id 'com.github.johnrengelman.shadow' version '7.1.2'
}

repositories {
    mavenCentral()
    maven { url 'https://hub.spigotmc.org/nexus/content/repositories/snapshots/' }
}

dependencies {
    compileOnly 'org.spigotmc:spigot-api:1.20.4-R0.1-SNAPSHOT'
}

sourceSets {
    main {
        resources {
            srcDirs = ['src/main/resources']
        }
    }
}

执行shadowJar任务生成Jar,不要用默认的jar任务,否则可能缺失资源文件。

4. 手动校验生成的Jar

构建完成后,在build/libs目录找到生成的Jar文件,用压缩工具打开,确认根目录下存在plugin.yml。如果不存在,回到前两步排查路径和配置问题。

5. 清理缓存后重新构建

执行Gradle清理任务,避免缓存导致的异常,再重新构建:

# Linux/macOS
./gradlew clean shadowJar

# Windows
gradlew clean shadowJar

内容的提问来源于stack exchange,提问作者Gweam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 05:26:15