maven打包出现乱码问题
目录
在测试环境运行mvn -U clean package指令部署到测试环境的机器上时,出现服务可用,但机器打印不出日志。
查看了一下log4j2.xml的日志,发现中文字体出现了乱码导致日志文件解析出错,如下图。
方案一
查看了pom.xml的配置文件,有设置encoding为UTF-8。
<!-- 编译使用1.8 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<fork>true</fork>
<verbose>true</verbose>
<encoding>UTF-8</encoding>
<compilerArguments>
war
<sourcepath>
${project.basedir}/src/main/java
</sourcepath>
</compilerArguments>
</configuration>
</plugin>
查看了打包日志:
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ niwanjia-service ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 27 resources
[INFO] Copying 4 resources
[INFO]
[INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ niwanjia-service ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ niwanjia-service ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 2 resources
方案1在每个项目的pom.xml中还要指定utf-8,如果不采用方案1,我还有一个更好的方案:更改平台编码格式。
方案二:改平台编码格式
使用 mvn -v 查看 平台编码格式:
$ mvn -version
Apache Maven 3.5.2 (138edd61fd100ec658bfa2d307c43b76940a5d7d; 2017-10-18T15:
58:13+08:00)
Maven home: D:\software\apache-maven-3.5.2
Java version: 1.8.0_112, vendor: Oracle Corporation
Java home: D:\software\Java\jdk1.8.0_112\jre
Default locale: zh_CN, platform encoding: GBK
OS name: "windows 10", version: "10.0", arch: "x86", family: "windows"
只所以出现中文乱码,是因为平台编码格式默认不是UTF-8,而是别的,比如 GBK,从而导致在使用mvn命令打包、安装的时候,使用的是GBK编码格式。
在环境变量中添加 maven参数的环境变量,然后重启电脑即可。
最后,也不知道什么原因,方案一没有效果,所以按照方案二改,问题解决了。