原文地址:https://www.jb51.net/article/143124.htm
maven目前在web上面的使用方式很普遍,而打包的方式也存在很多方式,下面這篇文章主要給大家介紹了關於maven資源過濾打包后文件變大的處理方法,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
前言
今天遇到一個問題,我們有個ip.dat二進制文件,通過里面內容可以解析ip所在的地域信息,本地單元測試都是OK的,部署到測試環境后,發現解析ip的時候報錯。拿測試環境打印出的IP地址,在本地單元測試也么有問題。最后發現:代碼庫的ip.dat文件大小只有3.5M左右,而測試環境的ip.dat文件大小在5M左右。
問題在於:為什么ip.dat通過maven打包后文件變大了?由於maven打包的時候,會將這個文件從src/main/resources/下面拷貝的conf目錄下。我直接將ip.dat放在conf目錄下,而不是resources目錄下,發現打包后大小正常。
也就是說maven打包的過程中,只是將src/main/resources/目錄下的文件變大了。因為我們在pom中開啟了資源過濾。
1
2
3
4
5
6
|
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>
true
</filtering>
</resource>
</resources>
|
解決方案
解決方案就很簡單了:直接將ip.dat放到conf目錄下不參與資源過濾就可以了。如果一定要將ip.dat放在resources目錄下,那么可以通過下面配置解決。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
<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證書等,就不要參與資源過濾,否則打包后會破壞文件內容。
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。