maven编译jar踩坑[sqlite.db]

背景:

最近在项目中搞多数据源切换的job,在src/resource下有初始化的sqlite默认文件供后续拷贝使用,在测试阶段没有什么问题,但是一部署到服务器上运行就有问题。

报错现象:

找不到这个sqlite.db文件或者文件格式有问题,通过查看服务器文件,发现.db文件是存在的,那就纳闷了,难道是切换数据源出问题了,但是本地没问题。

后续排查:

从服务器上下载的sqlite.db文件比本地文件会大一点,这是为啥?

然后用navcat打开这个文件,结果报错格式有误。那说明不是代码问题,应该是编译打包的时候出问题了。

解决方案:

编译的时候使用Maven的资源插件,将这个sqlite.db文件单独作为静态资源进行拷贝复制到jar中的classes文件路径下。pom中配置如下

XML 复制代码
           <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <version>3.2.0</version>
                <configuration>
                    <outputDirectory>target/classes</outputDirectory>
                    <encoding>UTF-8</encoding>

                    <delimiters>
                        <delimiter>@</delimiter>
                    </delimiters>
                    <nonFilteredFileExtensions>
                        <nonFilteredFileExtension>db</nonFilteredFileExtension>
                     </nonFilteredFileExtensions>
                    <skip>false</skip>
                    <overwrite>false</overwrite>
                    <includeEmptyDirs>true</includeEmptyDirs>
                    <useDefaultDelimiters>false</useDefaultDelimiters>
                 </configuration>
            </plugin>
相关推荐
hacker7072 分钟前
DBeaver 鸿蒙 PC 适配全记录:在 HarmonyOS 桌面端原生重建一个通用数据库工具
数据库·华为·harmonyos
Cicada1284 分钟前
分享我一直在用的一套 AI 记忆系统方案
大数据·数据库·人工智能
todoitbo11 分钟前
SQL Server数据库迁移:V9R4C019 如何接住存量 T-SQL 批处理
数据库·sql·国产数据库
云飞云共享云桌面18 分钟前
不用批量采购工作站|液压设备制造,SolidWorks 多人共享服务器方案
运维·服务器·网络·数据库·制造
写后端的胖头鱼27 分钟前
【高频面试题】SQL 查询慢怎么排查
数据库·sql·mysql·oracle·慢查询·高频面试题
蓝速科技34 分钟前
口岸政务窗口双屏翻译机落地应用指南
运维·数据结构·数据库·人工智能·科技·政务
风哥2号38 分钟前
数据库教程FGMT20‑Oracle容灾体系架构与数据库升级迁移方案
数据库·oracle·架构
wudongfang6661 小时前
mysql全量同步数据改增量
数据库·mysql
志栋智能1 小时前
超自动化安全的变更与配置安全管理
数据库·安全·自动化
toooooop81 小时前
thinkphp查询数据表最后的自增id
前端·javascript·数据库