编译Galactifun插件后Jar包缺失配置文件无法加载求助
问题:Minecraft插件Galactifun编译后Jar内缺失配置文件无法加载
问题详情
- 近期fork了Minecraft插件Galactifun用来适配服务器需求,编译完成后插件无法正常加载
- 原项目用Gradle的
plugin-yml插件自动生成plugin.yml,构建后build目录里能找到这个文件,但最终生成的Jar包里没有,服务器加载时提示plugins\Galactifun.jar内无paper-plugin.yml或plugin.yml,无法识别插件类型 - 已经试过三种办法都没用:
- 删掉
plugin-yml插件,改用手动放置的传统plugin.yml,还是报错 - 配置
plugin-yml生成paper-plugin.yml,问题依旧 - 同时开启自动生成和手动配置,编译时提示存在两个
plugin.yml文件
- 删掉
排查修复方案
1. 检查Gradle打包配置,确保配置文件纳入Jar
打开项目的build.gradle(或build.gradle.kts),确认打包任务将配置文件复制到Jar根目录:
- Groovy DSL配置:
jar { from('src/main/resources') { include 'plugin.yml' include 'paper-plugin.yml' } }
- Kotlin DSL配置:
tasks.jar { from(sourceSets.main.get().resources) { include("plugin.yml") include("paper-plugin.yml") } }
这一步能保证资源文件被正确打包进Jar,而非仅留在build目录中。
2. 确认plugin-yml插件配置正确性
如果继续使用plugin-yml,检查配置是否生成了正确路径的文件:
- 插件默认应将文件生成到
src/main/resources下,避免配置错误导致文件生成到其他位置 - 若生成
paper-plugin.yml,需确保主类添加了@PaperPlugin注解,同时plugin-yml配置中指定paper类型:
pluginYml { paper { name = 'Galactifun' main = '你的主类全路径' // 补充版本、作者等必填配置项 } }
3. 清理缓存后重新编译
执行以下Gradle命令清理缓存并重新构建,避免缓存导致的文件缺失:
./gradlew clean build
构建完成后,前往build/libs/目录找到生成的Jar文件,手动解压检查根目录是否存在plugin.yml或paper-plugin.yml。
4. 检查资源目录结构
确认项目资源目录为标准的src/main/resources,手动放置的配置文件必须存放在该目录下,Gradle才会默认将其纳入打包范围。
内容的提问来源于stack exchange,提问作者Ivan Mishin
相关产品推荐
相关产品推荐

