maven資源過濾打包后文件變大的處理方法
前言
今天遇到一個問題,我們有個ip.dat二進制文件,通過里面內(nèi)容可以解析ip所在的地域信息,本地單元測試都是OK的,部署到測試環(huán)境后,發(fā)現(xiàn)解析ip的時候報錯。拿測試環(huán)境打印出的IP地址,在本地單元測試也么有問題。最后發(fā)現(xiàn):代碼庫的ip.dat文件大小只有3.5M左右,而測試環(huán)境的ip.dat文件大小在5M左右。
問題在于:為什么ip.dat通過maven打包后文件變大了?由于maven打包的時候,會將這個文件從src/main/resources/下面拷貝的conf目錄下。我直接將ip.dat放在conf目錄下,而不是resources目錄下,發(fā)現(xiàn)打包后大小正常。
也就是說maven打包的過程中,只是將src/main/resources/目錄下的文件變大了。因為我們在pom中開啟了資源過濾。
<resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> </resource> </resources>
解決方案
解決方案就很簡單了:直接將ip.dat放到conf目錄下不參與資源過濾就可以了。如果一定要將ip.dat放在resources目錄下,那么可以通過下面配置解決。
<resources> <!--排除ip.dat,不打包到classpath下,自然就不會過濾--> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> <excludes> <exclude>ip.dat</exclude> </excludes> </resource> <!--將ip.dat打包到classpath下,但是不進行資源過濾--> <resource> <directory>src/main/resources</directory> <filtering>false</filtering> <includes> <include>ip.dat</include> </includes> </resource> </resources>
使用maven進行資源過濾的時候,只要過濾需要過濾的文件,一些二進制文件,比如https證書等,就不要參與資源過濾,否則打包后會破壞文件內(nèi)容。
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
Springboot 中使用 Aop代碼實戰(zhàn)教程
AOP的編程思想是把對類對象的橫切問題點,從業(yè)務(wù)邏輯中分離出來,從而達到解耦的目的,增加代碼的復(fù)用性,提高開發(fā)效率,這篇文章主要介紹了Springboot中使用Aop代碼實戰(zhàn)教程,需要的朋友可以參考下2023-07-07Springboot整合Swagger2后訪問swagger-ui.html 404報錯問題解決方案
這篇文章主要介紹了Springboot整合Swagger2后訪問swagger-ui.html 404報錯,本文給大家分享兩種解決方案,結(jié)合實例代碼給大家介紹的非常詳細,需要的朋友可以參考下2023-06-06Java使用elasticsearch基礎(chǔ)API使用案例講解
這篇文章主要介紹了Java使用elasticsearch基礎(chǔ)API使用案例講解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下2021-08-08