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

如何将bungee.yml纳入Maven Shade插件生成的Uber Jar?

解决Maven Shade Plugin无法包含bungee.yml的问题

嘿,我踩过这个坑!你配置里的IncludeResourceTransformer有个小细节没弄对,导致bungee.yml没被打包进Uber Jar里。咱们来快速修正:

方法1:直接修正Shade插件配置

你之前的<resource>参数理解错了——它不是指目标目录,而是要指定文件在Jar中的完整路径(包括文件名)。把配置改成这样:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-shade-plugin</artifactId>
    <version>3.2.4</version>
    <executions>
        <execution>
            <phase>package</phase>
            <goals>
                <goal>shade</goal>
            </goals>
            <configuration>
                <transformers>
                    <transformer implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer">
                        <!-- 指定Jar中最终的文件名(根目录下的bungee.yml) -->
                        <resource>bungee.yml</resource>
                        <!-- 本地文件路径,因为和pom.xml同目录,直接写文件名即可 -->
                        <file>bungee.yml</file>
                    </transformer>
                </transformers>
                <artifactSet>
                    <excludes>
                        <exclude>net.md-5:bungeecord-api</exclude>
                        <exclude>net.luckperms:api</exclude>
                    </excludes>
                </artifactSet>
            </configuration>
        </execution>
    </executions>
</plugin>

执行mvn clean install之后,你就能在生成的Uber Jar根目录里找到bungee.yml了。

方法2:遵循Maven规范(更推荐)

Maven默认会把src/main/resources目录下的所有文件打包到Jar中,所以更规范的做法是:

  • 把你的bungee.yml移动到src/main/resources目录下
  • 删掉Shade插件里的IncludeResourceTransformer配置

这样Maven会自动把资源文件复制到target/classes目录,Shade插件打包时会自动包含这些文件,不需要额外配置。

两种方法都能解决问题,方法2更符合Maven的项目结构规范,后续维护起来更省心~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 17:42:35