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>
相关推荐
天桥下的卖艺者40 分钟前
使用scitable包,两步生成逆概率删失权重(IPCW)
数据库·r语言
隔窗听雨眠1 小时前
AI原生数据库浪潮:国产数据库的架构重构与路径之争
数据库
数据库小学妹1 小时前
数据库选型实战:从数据类型到TCO成本,五维决策框架+九款产品横评
数据库·信创·国产数据库·数据库选型·oracle迁移
神龙天舞20012 小时前
MySQL 备库为什么会延迟好几个小时
android·数据库·mysql
丙氨酸長鏈4 小时前
Web前端入门第 问:JavaScript 一个简单的 IndexedDB 数据库入门示例
前端·javascript·数据库
独行侠影a4 小时前
APScheduler+Redis 分布式定时任务:解决多实例任务重复执行
数据库·redis·分布式
传说故事5 小时前
数据库中一些常用英文单词含义
数据库·oracle
夏贰四5 小时前
中小企业搭建业务中台如何控成本?业务中台轻量化落地分几步实施?
数据库·业务中台
林焱RPA6 小时前
影刀RPA200篇纪念版:最实用的20个自动化场景大盘点
数据库
名字还没想好☜6 小时前
Go 的 time.After 在 select 循环里内存泄漏:定时器堆积原理与 timer.Reset 正确姿势
java·数据库·golang·go·goroutine