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

如何将指定资源文件排除在Quarkus fast jar包外?

如何将指定SQL迁移文件排除在Quarkus Fast Jar打包范围外

要实现把src/main/resources/db/migration/V1.0.0_Quarkus.sql排除出Fast Jar打包,同时部署时使用文件系统指定路径的文件,按以下步骤操作:

1. 从Maven资源配置排除目标文件

Fast Jar打包会包含target/classes下的所有资源,所以第一步要确保编译阶段不把这个SQL文件复制到输出目录。直接修改pom.xml的<build>节点,添加资源排除规则:

<build>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <excludes>
                <exclude>db/migration/V1.0.0_Quarkus.sql</exclude>
            </excludes>
        </resource>
    </resources>
    <!-- 保留原有的其他build配置 -->
</build>

2. 部署时指定外部迁移文件路径

以Quarkus默认的Flyway数据库迁移为例,有两种常用方式让应用加载外部文件系统的迁移文件:

方式一:启动时通过JVM参数指定

启动Fast Jar包时,添加系统参数指定外部迁移目录:

java -Dquarkus.flyway.locations=filesystem:/opt/app/migration -jar your-app-fast-jar.jar

开发环境测试时,也可以直接在Dev模式下加参数:

./mvnw quarkus:dev -Dquarkus.flyway.locations=filesystem:/local/dev/migration

方式二:通过配置文件固定路径

如果部署环境路径固定,可在application.properties里直接配置:

quarkus.flyway.locations=filesystem:/opt/app/migration

不过这种方式灵活性较差,建议优先用JVM参数的方式,方便不同环境切换路径。

3. 验证配置是否生效

执行Fast Jar构建命令:

./mvnw package -Dquarkus.package.type=fast-jar

构建完成后,检查target/classes/db/migration目录,确认V1.0.0_Quarkus.sql不在其中;启动应用时,观察日志确认Flyway加载了外部路径的迁移文件并执行成功。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 19:45:56