maven 打war包tomcat服务器乱码问题

2023-07-29,,

今天用maven3的命令打war包,命令是mvn clean package -Dmaven.test.skip=true,打包后放在tomcat跑起来后发现tomcat的日志出现乱码

后来在pom.xml中添加<project.build.sourceEncoding>utf-8</project.build.sourceEncoding>就解决了。

主要原因是我的电脑window的maven默认的字符集是gbk ,可以执行mvn -version看到

Maven home: G:\apache-maven-3.3.9
Java version: 1.8.0_65, vendor: Oracle Corporation
Java home: G:\java\jdk1.8\jre
Default locale: zh_CN, platform encoding: GBK
OS name: "windows 8.1", version: "6.3", arch: "amd64", family: "dos"

查阅了下资料发现maven2和maven3有点区别

在确认POM文件中已有上述<project.build.sourceEncoding>内容的前提下,增加以下内容(如已包含maven-compiler-plugin的相关内容,则只需在相应位置增加红色字体部分内容):

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.5</source>
<target>1.5</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>

注意:

1、同时指定<project.build.sourceEncoding>属性和<encoding>的方式可适用于Maven2和Maven3。

2、在Maven3中可以只增加<project.build.sourceEncoding>属性而不指定<encoding>,即能解决编译问题。如果只指定<encoding>编译不会出错,但会出现以下警告。建议两者都进行指定或只指定前者。警告信息如下:

[WARNING] Using platform encoding (GBK actually) to copy filtered resources, i.e. build is platform dependent!

3、在Maven2中,如果只指定<project.build.sourceEncoding>属性则编译出错;如果只指定<encoding>编译不会出错,但会出现与第2点类似的警告,建议两者都进行指定,以免对运行产生影响。

maven 打war包tomcat服务器乱码问题的相关教程结束。

《maven 打war包tomcat服务器乱码问题.doc》

下载本文的Word格式文档,以方便收藏与打印。