Maven resources plugin在執行資源處理的時候,如果處理的資源存在二進制形式的數據,同時filtering選項被打開,則會出現二進制文件損壞的情況,比如導致字體文件被順壞,渲染端不能正確解析字體文件。
對此,Maven官方文檔有說:
Warning: Do not filter files with binary content like images! This will most likely result in corrupt output.
解決方案: 一. 如果沒有使用到filter,則可直接把filtering選項關閉,顯式的設置為false或者刪除filtering元素
...<resource> <directory>src/main/resources</directory> <filtering>false</filtering> </resource>...二. 把資源分為需要過濾的(比如src/main/resources-filtered)和不需要過濾的(比如放于默認的資源目錄src/main/resources ),把二進制文件放入不需要過濾的目錄中
<PRoject> ... <build> ... <resources> <resource> <directory>src/main/resources-filtered</directory> <filtering>true</filtering> </resource> ... </resources> ... </build> ... </project>三. 使用文件擴展過濾配置 默認情況下,jpg, jpeg, gif, bmp ,png圖片文件被自動從過濾列表中排除,通過nonFilteredFileExtension元素指定額外的文件擴展后綴
<project> ... <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <version>3.0.1</version> <configuration> ... <nonFilteredFileExtensions> <nonFilteredFileExtension>pdf</nonFilteredFileExtension> <nonFilteredFileExtension>swf</nonFilteredFileExtension> </nonFilteredFileExtensions> ... </configuration> </plugin> </plugins> ... </build> ... </project>新聞熱點
疑難解答