如何为Minecraft 1.19.3插件添加CraftBukkit作为Maven依赖?
解决Maven添加CraftBukkit 1.19.3依赖的问题
核心问题分析
你遇到的「引用不存在的文件」错误,本质是systemPath路径配置有误,且将CraftBukkit jar放在resources目录本身就不合理——resources目录是用来打包插件资源的,并非存放依赖jar的地方。另外,system scope的依赖管理方式非常脆弱,依赖本地绝对路径,换环境就会失效,更推荐将生成的jar安装到本地Maven仓库。
推荐解决方案:将BuildTools生成的jar安装到本地Maven仓库
定位BuildTools生成的jar文件
BuildTools执行完成后,jar文件默认存放在其运行目录的target文件夹下,文件名应为craftbukkit-1.19.3-R0.1-SNAPSHOT.jar(注意版本号后缀需和pom里的version完全一致),同时找到对应的bukkit-1.19.3-R0.1-SNAPSHOT.jar和spigot-1.19.3-R0.1-SNAPSHOT.jar。执行Maven安装命令
打开终端,进入jar所在目录,分别执行以下命令(替换path/to/为实际文件路径):# 安装craftbukkit mvn install:install-file -Dfile=path/to/craftbukkit-1.19.3-R0.1-SNAPSHOT.jar -DgroupId=org.bukkit -DartifactId=craftbukkit -Dversion=1.19.3-R0.1-SNAPSHOT -Dpackaging=jar # 安装bukkit mvn install:install-file -Dfile=path/to/bukkit-1.19.3-R0.1-SNAPSHOT.jar -DgroupId=org.bukkit -DartifactId=bukkit -Dversion=1.19.3-R0.1-SNAPSHOT -Dpackaging=jar # 安装spigot(如果需要) mvn install:install-file -Dfile=path/to/spigot-1.19.3-R0.1-SNAPSHOT.jar -DgroupId=org.spigotmc -DartifactId=spigot -Dversion=1.19.3-R0.1-SNAPSHOT -Dpackaging=jar修改pom.xml的依赖配置
删除原来带system和systemPath的依赖块,替换为正常的依赖声明(使用providedscope,因为服务器运行时会提供这些依赖,不需要打包到你的插件jar中):<dependency> <groupId>org.bukkit</groupId> <artifactId>craftbukkit</artifactId> <version>1.19.3-R0.1-SNAPSHOT</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.bukkit</groupId> <artifactId>bukkit</artifactId> <version>1.19.3-R0.1-SNAPSHOT</version> <scope>provided</scope> </dependency>刷新Maven依赖
在IDE中执行Maven的clean和compile命令,依赖即可正常识别。
备选方案:修正system scope的路径配置(不推荐)
如果你坚持使用system scope,按以下步骤调整:
- 在项目根目录新建
lib文件夹,将BuildTools生成的craftbukkit jar放入其中。 - 修改pom.xml的
systemPath为相对路径(使用Maven内置变量${project.basedir}指向项目根目录),同时确保文件名完全匹配:<dependency> <groupId>org.bukkit</groupId> <artifactId>craftbukkit</artifactId> <version>1.19.3-R0.1-SNAPSHOT</version> <scope>system</scope> <systemPath>${project.basedir}/lib/craftbukkit-1.19.3-R0.1-SNAPSHOT.jar</systemPath> </dependency> - 注意:这种方式会让项目依赖本地文件结构,团队协作或换机器时需要手动同步lib文件夹,灵活性极差。
内容的提问来源于stack exchange,提问作者Fuzetea17
相关产品推荐
相关产品推荐

