maven資源過濾打包后文件變大的處理方法


原文地址: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證書等,就不要參與資源過濾,否則打包后會破壞文件內容。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM