java編譯(打包)完成,導致Excel文件損壞的問題

版權聲明:本文爲博主原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
本文鏈接:https://blog.csdn.net/qq_26469555/article/details/89394581
問題描述

在項目中放置一個可供用戶登錄後下載的excel模版,項目在打包成功後,在target中直接打開excel,發現excel已經損壞。



問題原因

項目在編譯或者打包過程中,會對excel進行編譯,這樣經過文件filter過濾一遍之後,excel文件就損壞了,
具體原因還不清楚,還需要各位大佬具體分析一下。可以利用Maven resource配製中include與exclude的關係來解決這次問題。



問題未解決時的配置

<resource>
    <directory>src/main/resources</directory>
    <filtering>true</filtering>
</resource>


解決後的配置
與是用來圈定和排除某一文件目錄下的文件是否是工程資源的。如果與劃定的範圍存在衝突時,以劃定的範圍爲準。大多數情況下,我們使用和是爲了配合實現過濾特定文件的需要。
例如,在一個工程中,src/main/resources目錄下都是工程的資源文件,並不需要和再進行劃定。但如果我們需要對其中的某一個或這兩個文件進行過濾的話,則需要藉助和進行配置

<resource>
    <directory>src/main/resources</directory>
    <excludes>
        <exclude>**/*.xlsx</exclude>
    </excludes>
    <filtering>true</filtering>
</resource>
<resource>
    <directory>src/main/resources</directory>
    <includes>
        <include>**/*.xlsx</include>
    </includes>
    <filtering>false</filtering>
</resource>


其中第一段配置聲明:在src/main/resources目錄下,後綴是.xlsx的文件不是資源文件,其它的資源文件需要被過濾。而第二段配置聲明:同樣在src/main/resources目錄下,後綴是.xlsx的文件是資源文件,但是不會被過濾。

配置完成後,如果重新編輯(打包)沒有效果,需要maven claen 或者刪除target文件重新編譯一遍就可以啦。

在遇到這個問題的時候參考了 浪子豔少(https://blog.csdn.net/win7system/article/details/55519444) 的觀點,非常感謝。
 

------------------------------------

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章