Idea中Maven执行package未生成jar包提示未设置文件编码怎么解决
Maven打包编码告警&无jar包问题解决方案
告警说明
你遇到的WARNING级日志内容如下:
Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
该告警本身属于提示类信息,默认不会直接阻断构建流程,也不会直接导致jar包生成失败,未生成jar包需要单独排查其他错误。
1 修复编码告警
该告警触发原因是项目未显式指定资源文件编码,maven-resources-plugin会默认使用当前操作系统的编码,导致不同环境构建可能出现字符乱码问题,修复方案二选一即可:
方案1:全局配置项目编码(推荐)
在pom.xml的properties节点中添加如下配置:
<properties> <!-- 统一指定构建过程源码、资源文件编码 --> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <!-- 可选:指定报告输出编码 --> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> </properties>
方案2:单独指定资源插件编码
如果只想针对资源复制环节指定编码,在pom.xml的build->plugins节点中添加maven-resources-plugin的配置:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <version>2.6</version> <configuration> <encoding>UTF-8</encoding> </configuration> </plugin>
配置完成后,在IDEA的Maven面板点击刷新按钮同步配置,重新执行package命令即可消除该告警。
2 排查未生成jar包问题
因为编码告警不会导致构建失败,无jar包输出请按以下步骤排查:
- 检查Maven完整构建日志,定位
ERROR级别的报错信息,常见原因有Java代码编译错误、依赖包缺失、插件配置冲突等,根据错误提示针对性修复即可。 - 检查
pom.xml根节点下的packaging配置,确认值为jar:
如果配置为<packaging>jar</packaging>pom、war等其他值,不会生成jar包。 - 检查构建产物输出目录:Maven默认会把jar包输出到项目根目录下的
target文件夹中,不要在IDE默认的编译输出目录查找。 - 确认
maven-jar-plugin插件未被禁用、配置无错误,未自定义jar包输出路径。
内容的提问来源于stack exchange,提问作者Leo
相关产品推荐
相关产品推荐

